UDP协议的通信问题

xuxian02092213 2008-03-21 12:15:26
我看了一个关于UDP通信的例子,可是服务器端却无法接收数据,例子如下
server:
ServerAddr.sin_family =AF_INET;
ServerAddr.sin_port =htons(5001);
ServerAddr.sin_addr.s_addr =inet_addr("127.0.0.1");//htonl(INADDR_ANY);

bind(ClientSocket,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr));
ClientAddrLen=sizeof(ClientAddr);
while(TRUE)
{
cout<<"准备接收数据!"<<endl;
recvfrom(ClientSocket,DataBuf,sizeof(DataBuf),0,(SOCKADDR*) &ClientAddr,&ClientAddrLen);
cout<<"接受到的数据是:";
puts(DataBuf);
}
client端是:
ServerAddr.sin_family =AF_INET;
ServerAddr.sin_port =htons(5001);
ServerAddr.sin_addr.s_addr =inet_addr("127.0.0.1");

while(TRUE)
{
cout<<"请输入要发送的数据:";
cin>>DataBuf;
cout<<"要发送的数据是:";
puts(DataBuf);

sendto(ClientSocket,DataBuf,sizeof(DataBuf),0,(SOCKADDR*)&ServerAddr,sizeof(ServerAddrLen));
}


结果是服务器端无法接收到数据,请问这是什么问题?
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2008-03-21
  • 打赏
  • 举报
回复
ClientSocket创建了没?
liyuzhu_1984 2008-03-21
  • 打赏
  • 举报
回复
我只能说 你的贴子 发错地方了
xuxian02092213 2008-03-21
  • 打赏
  • 举报
回复
我知道我的错了,不过谢谢两位的答复,虽然说你们的答案并没有给我帮助。
2楼的,我用的是UDP协议,所以你那样改是没用的
1楼的,我创建了socket,只不过有个问题就是sendto(...,sizeof(ServerAddrLen));
呵呵,是我的疏忽
Chappell 2008-03-21
  • 打赏
  • 举报
回复
客户端:

SOCKET s = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(s==INVALID_SOCKET)
{
return false;
}
sockaddr_in servAddr;
servAddr.sin_family = AF_INET;
servAddr.sin_port = htons(port);
servAddr.sin_addr.S_un.S_addr = inet_addr(server);
if(::connect(s,(sockaddr*)&servAddr,sizeof(servAddr))==-1)
{
return false;
}

64,849

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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