socket通信无法接收信息

Q446512799 2011-10-12 04:22:12
struct stu{
int id;
char name[10];
int money;
}p;
客服端输入id、money后将结构p转换成sendbuff[50]发送到服务端,不能正确接收

服务端接受信息:

while(1) {
/* 服务器阻塞,直到客户程序建立连接 */
sin_size=sizeof(struct sockaddr_in);
if ((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size)) == -1)
{
fprintf(stderr,"Accept error:%s",strerror(errno));
exit(1);
}
fprintf(stderr,"Server get connection from %s",inet_ntoa(client_addr.sin_addr)); //程序到这里还有输出
bzero(recvbuff,50);
bzero(&p,sizeof(p));
int len = recv(sockfd,recvbuff,50,0); //这里len一直返回-1
if (len > 0)
{
memcpy(&p,recvbuff,sizeof(p));
printf("%d,%d",p.id,p.money);
}
close(new_fd);
}


客服端发送信息:

if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
{
fprintf(stderr,"Connect Error:%s ",strerror(errno));
exit(1);
}
while(1)
{
bzero(sendbuff,50);
bzero(&p,sizeof(p));
printf("please input id and money\n");
scanf("%d %d",&p.id,&p.money);
memcpy(sendbuf,&p,sizeof(p));
int len = send(sockfd,sendbuff,sizeof(sendbuff),0); //这里len是大于0的
}
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q446512799 2011-10-12
  • 打赏
  • 举报
回复
(*^__^*) 嘻嘻……,结贴发分了,酱油也有
七擒关羽 2011-10-12
  • 打赏
  • 举报
回复
吓死人了~
Roy_Smiling 2011-10-12
  • 打赏
  • 举报
回复
其实我是来打酱油的饿哦哦~
Q446512799 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hokuhouhi 的回复:]
int len = recv(sockfd,recvbuff,50,0); //这里len一直返回-1
这里sockfd不对吧,应该是accept之后的new_fd
[/Quote]
soga,阿里嘎多
thank you very much!!!!
太爱你们了0.0
qq120848369 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hokuhouhi 的回复:]

int len = recv(sockfd,recvbuff,50,0); //这里len一直返回-1
这里sockfd不对吧,应该是accept之后的new_fd
[/Quote]

++
xin_wu_hen 2011-10-12
  • 打赏
  • 举报
回复
ls++
hokuhouhi 2011-10-12
  • 打赏
  • 举报
回复
int len = recv(sockfd,recvbuff,50,0); //这里len一直返回-1
这里sockfd不对吧,应该是accept之后的new_fd
Q446512799 2011-10-12
  • 打赏
  • 举报
回复
就知道技术区没人

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧