社区
网络编程
帖子详情
关于recvfrom函数
loucai
2003-06-16 11:24:32
调用一次recvfrom()后,它怎么会影响到里面的SOCKET变量?
...全文
148
6
打赏
收藏
关于recvfrom函数
调用一次recvfrom()后,它怎么会影响到里面的SOCKET变量?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loucai
2003-06-16
打赏
举报
回复
就是在一个循环中,调用这个函数,当接受一次数据后,发现里面的SOCKET变量被改变了,再执行这个函数,出错。
freewing
2003-06-16
打赏
举报
回复
?
loucai
2003-06-16
打赏
举报
回复
是用了线程了,不过只是接收数据,没有更改初始设置,可是当接收完数据后,那个sLocal被更改了。谢谢各位老大。
lichungen
2003-06-16
打赏
举报
回复
是不是用了多线程,在别的线程中改变了
loucai
2003-06-16
打赏
举报
回复
初始化代码如下:
WSADATA wsd;
SOCKET sLocal, sRemote,sTmp;
struct sockaddr_in local;
char buff[16];
if(WSAStartup(MAKEWORD(2, 2), &wsd) != 0){
AfxMessageBox("WSAStartup() failed!");
return 0;
}
sLocal = socket(AF_INET, SOCK_DGRAM, 0);
if(sLocal == SOCKET_ERROR){
AfxMessageBox("socket() failed!");
closesocket(sLocal);
WSACleanup();
}
local.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
local.sin_family=AF_INET;
local.sin_port=htons(2222);
int ret=bind(sLocal,(struct sockaddr *)&local,sizeof(local));
if(ret==SOCKET_ERROR){
AfxMessageBox("bind() failed!");
closesocket(sLocal);
WSACleanup();
return 0;
};
jemmylau
2003-06-16
打赏
举报
回复
是不是初始化工作没做好?
Linux系统调用--
recv
/
recv
from
函数
详解
从套接字上接收一个消息。对于
recv
from ,可同时应用于面向连接的和无连接的套接字。
recv
一般只用在面向连接的套接字,几乎等同于
recv
from,只要将
recv
from的第五个参数设置NULL。 如果消息太大,无法完整存放在所提供的缓冲区,根据不同的套接字,多余的字节会丢弃。 假如套接字上没有消息可以读取,除了套接字已被设置为非阻塞模式,否则接收调用会等待消息的到来。
非阻塞
recv
from的设置
系统默认
recv
from
函数
是阻塞的,这里是非阻塞的设置!!!
recv
from()和sendto()
函数
recv
from()和sendto()
函数
UDP通信服务器和客户端 VC++
UDP通信,实现客户端和服务器端互发消息,简易版。
tcp.rar_UDP
recv
from_tcp_tcp sendto_udp
函数
_udp_sendto
UDP实现的简易通讯程序 用sendto(),
recv
from()
函数
实现客户机与服务器之间的信息交换。
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章