1.如果十个线程,只有一个socket,每个线程要频繁的进行send 和 recv,例如 发送函数:
if(select(sockfd + 1, NULL, &allset, NULL, &tv) <= 0)
{
return -1;
}
send(sockfd, (char *)buf, len, 0); 接收函数
if(select(sockfd + 1, &allset,NULL, NULL, &tv) <= 0) {
return -1;
} rlen = recv(sockfd, (char *)buf, 1024, 0);请问一个线程的recv是否会接收到其他线程的数据?也就是recv是否会接受错误?
2.如果十个线程,创建十个socket,每个线程也要频繁的进行send 和 recv,函数如上
recv是否会接受错误?
recv和send的长度不同有否影响?我已经确定单线程执行是没有问题的,谢谢
if(select(sockfd + 1, NULL, &allset, NULL, &tv) <= 0)
{
return -1;
}
send(sockfd, (char *)buf, len, 0); 接收函数
if(select(sockfd + 1, &allset,NULL, NULL, &tv) <= 0) {
return -1;
} rlen = recv(sockfd, (char *)buf, 1024, 0);请问一个线程的recv是否会接收到其他线程的数据?也就是recv是否会接受错误?
2.如果十个线程,创建十个socket,每个线程也要频繁的进行send 和 recv,函数如上
recv是否会接受错误?
recv和send的长度不同有否影响?我已经确定单线程执行是没有问题的,谢谢
解决方案 »
- 从别的程序中的listview 控件中动态读取数据
- 怎么样做到opengl动画中改变视角观察?
- 请高手帮忙看看是怎么回事
- 关于WH_MOUSE钩子的一个严重问题!
- 请问我怎么才能用win api 获得硬件信息?
- 跪求各位给个答案,调试过程中出现的问题。
- 有个问题请教IE编程高手
- Install Shield for vc6如何在开始菜单中添加一个快捷方式?
- 如何获知某IP是不是ADSL拨号上网的(就象珊糊虫能通过IP观察是不是ADSL上网)
- 毕业设计卡壳了:单文档多视的问题
- casyncsocket类为什么只能用在shared library中的debug版本下 , 在release版本下或者在static library中为什么都不行
- CImaList
难道说一个发送线程必须对应一个接收线程吗?
recv是在服务器端,send是在客户端,这两者之间的线程没有联系
服务器端只要能接收到客户端的数据就行,无所谓对错的
2 tcp的话理论上是不会出错的
因为recv,send都在客户端,所以十个线程频繁发送send会不会导致recv接收混乱,因为接收长度和send的长度也不同
因为没有办法测试是不是接收错误,所以发帖请教一下