当前位置: 技术问答>linux和unix
大家帮我看下这个程序,异步聊天的,有点问题。在线等,,急哦
来源: 互联网 发布时间:2016-07-12
本文导语: 本帖最后由 kooko1986 于 2009-11-02 16:32:33 编辑 这个是异步聊天的程序,我也copy的别人的 服务器端程序运行后出现 ----等待新的连接到来开始新一轮聊天..... accept: Invalid argument 到accept那里好像出问题了。检查了下,没...
服务器端程序运行后出现
----等待新的连接到来开始新一轮聊天.....
accept: Invalid argument
到accept那里好像出问题了。检查了下,没找出来什么地方错了。大虾帮我看看。我把程序发到回复的1楼和2楼
在线等哦,一会下班要被检查。。
|
printf
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(struct sockaddr_in);
if ((new_fd =
accept(sockfd, (struct sockaddr *) &their_addr,
&len)) == -1) {
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(struct sockaddr_in);
if ((new_fd =
accept(sockfd, (struct sockaddr *) &their_addr,
&len)) == -1) {
|
照你这学习速度,马上就要发达了。
今天没心情看代码,明天再看。
今天没心情看代码,明天再看。
|
看不出错误来,没有测试机
尝试下:
1.
printf
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(struct sockaddr);
改为:
printf
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(their_addr);
2.
sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1)
改为
sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
my_addr.sin_family = PF_INET;
改为
my_addr.sin_family = AF_INET;
最后不行,把accept的errno弄出来
尝试下:
1.
printf
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(struct sockaddr);
改为:
printf
("n----等待新的连接到来开始新一轮聊天……n");
len = sizeof(their_addr);
2.
sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1)
改为
sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
my_addr.sin_family = PF_INET;
改为
my_addr.sin_family = AF_INET;
最后不行,把accept的errno弄出来
|
accept之前把sockfd打出来,看是不是大于0