QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 590|回复: 1

网络编程问题

[复制链接]
发表于 2005-5-10 16:13:22 | 显示全部楼层 |阅读模式
server.c:

j=read(fd,a,(sizeof a -1));
if(j==-1){close(fd);bail("read()");}
if(j==0){close(fd);printf("end of file\n");exit(1);}
else
{
a[j]=0;
printf("read:%s\n",a);
k=sendto(s,a,strlen(a),0,(struct sockaddr *)&adrc,l);
if(k==-1)bail("sendto()");
}
k=recvfrom(s,b,sizeof b,0,(struct sockaddr *)&adrc,&l);
if(k==-1)bail("recvfrom()");
printf("from %s port %u: \n\t'%s'\n",inet_ntoa(adrc.sin_addr),(unsigned)ntohs(adrc.sin_port),b);

////////////////////////////////////////////////////////////////////
client.c:

j=read(fd,a,(sizeof a -1));
if(j==-1){close(fd);bail("read()");}
if(j==0){close(fd);printf("end of file\n");exit(1);}
else
{
a[j]=0;
printf("read:%s\n",a);
k=sendto(s,a,strlen(a),0,(struct sockaddr *)&adrs,l);
if(k==-1)bail("sendto()");
}
k=recvfrom(s,b,sizeof b,0,(struct sockaddr *)&adrc,&x);
if(k==-1)bail("recvfrom()");
printf("from %s port %u: \n\t'%s'\n",inet_ntoa(adrc.sin_addr),(unsigned)ntohs(adrc.sin_port),b);
///////////////////////////////////////////////////////
执行结果:

client:

read:Unable to han ////////////////////////这应该是正确读入的数据
from 192.168.2.97 port 9000:
        'Unable to han.?縐nable to han'/////////////////从主机接收的
server:

read:Unable to han///////////////////////主机读入的正确数据
from 192.168.2.120 port 1024:
        'Unable to hanX@Unable to han'///////////////////从客户机接受的

server和client都读的同一个文件。为什么都收到两遍,第二遍还不正确,请教!
发表于 2005-5-11 11:19:31 | 显示全部楼层
大哥 写的让人看的懂还行啊 这完全是一团字符啊
bbcode麻烦的话 贴附件多好啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 03:43 , Processed in 0.038521 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表