您的位置:首页 > 其它

从talk服务器上获取要交流对象的地址

2012-05-22 20:38 155 查看
void do_talk(const char *buf,int sockfd)

{

        FILE *fp;

        const char *t;

        struct  login_user me;

        fp = fopen("login.dat","r");

        if (fp == NULL) {

                err_ret("failed to open the login.dat");

                return;

        }

        else {

                t = talk_name(buf,"& :\t\n");

                printf("talk name is %s\n",t);

                while(fread(&me,sizeof(struct login_user),1,fp) == 1) {

                        fprintf(stderr,"Find user once login\n");

                        if (strcmp(me.name,t) == 0) {

                                if (!me.online) {

                                        fprintf(stderr,"your friends is offline\n");

                                        return;

                                }

                                else {

                                        const char *p;

                                        char buf[MAXLINE];

                                        p = inet_ntop(AF_INET,&me.useraddr.sin_addr,buf,sizeof(buf));

                                        if (p == NULL) {

                                                fprintf(stderr,"Failed to get address\n");

                                                return;

                                        }

                                        else {

                                                printf("buf is %s\n",buf);

                                                char sendbuf[MAXLINE];

                                                snprintf(sendbuf,sizeof(sendbuf),"talk:%s\n",buf);

                                                printf("sendbuf is %s\n",sendbuf);

                                                writen(sockfd,sendbuf,strlen(sendbuf));

                                                return;

                                        }

                                }

                        }

                }

        }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息