社区
网络编程
帖子详情
收发数据,用一个socket还是两个socket??
okmnji79513
2010-05-20 04:29:30
RT
例如:A机 相互 B机 收发UDP数据,
方式一:socket_X 在 线程M 中连续不断的发数据,socket_Y 在 线程N 中接收数据。(2个线程使用2个socket)
方式二:socket_X 在 线程M 中连续不断的发数据,并且 线程N 也使用 socket_X 来接收数据。(2个线程使用1个socket)
请问这两种方式有区别吗?
如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?
...全文
643
26
打赏
收藏
收发数据,用一个socket还是两个socket??
RT 例如:A机 相互 B机 收发UDP数据, 方式一:socket_X 在 线程M 中连续不断的发数据,socket_Y 在 线程N 中接收数据。(2个线程使用2个socket) 方式二:socket_X 在 线程M 中连续不断的发数据,并且 线程N 也使用 socket_X 来接收数据。(2个线程使用1个socket) 请问这两种方式有区别吗? 如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
china_ccboy
2010-06-08
打赏
举报
回复
个人看法:
你的写法和你占用的资源有关。至于和效率有没有,真的不好说。我没试过。
go_paradise
2010-06-08
打赏
举报
回复
支持用一个,足矣!
Wenxy1
2010-06-08
打赏
举报
回复
一般用一个,容易管理。
e513479333
2010-06-08
打赏
举报
回复
看数据量大小
howema
2010-06-01
打赏
举报
回复
跟socket个数无关了
tjusun007
2010-06-01
打赏
举报
回复
一个足矣
Vinc
2010-06-01
打赏
举报
回复
我选2个,因为这样可以分开管理2个缓冲区。
haowangyi
2010-05-31
打赏
举报
回复
叮叮叮啊,我也想知道
yaozhiyong110
2010-05-22
打赏
举报
回复
2个线程用2个socket 和2个线程用1个socket 效率上没区别
只是多维护一个socket占用系统资源而已(不过这个可以忽略不计)
只要你的socket连接是好的 那用A和用B 有区别吗? 至少从程序的层面上没区别
站在操作系统或底层实现的层面上也许有差别 不过你的1、2个线程 1、2个socket
即使在底层有区别 也体现不出来
有时间你可以好好研究下 我也想知道底层的区别
黑嘿
2010-05-22
打赏
举报
回复
up up
周药师
2010-05-22
打赏
举报
回复
效率高低不取决于用多少个Socket
而是看你这个业务中,每次发送接收的数据量大小、并发的数量大小、网络的稳定性,业务处理的复杂度
线程的使用等 很多因素,
要到达最高效率关键是看你是否根据需求进行合理设计
okmnji79513
2010-05-22
打赏
举报
回复
[Quote=引用 13 楼 zhouzhangkui 的回复:]
看不懂你说的
[/Quote]
我的意思是:
假设情况:
A机 线程1 向B一直不停的发数据,A机 线程2 从B那里一直不停的接收数据 (使用UDP)。
那 线程1 和 线程2 是使用 1个socket效率高,还是使用 2个socket效率高???
或者说 只要在 1个线程 里使用 1个socket??(因为如上 假设情况 中 “2个线程-->2个socket通讯”、“2个线程-->1个socket通讯”、“1个线程-->1个socket通讯” 所表现出来的效率是完全一样的?没有任何差别??????)
shenyi0106
2010-05-21
打赏
举报
回复
一个socket
两个(多个)线程
okmnji79513
2010-05-21
打赏
举报
回复
UP 有人比较过 效率有差别不?
还是说 :socket只是用于描述IP地址和端口的
描述性的东西
??只要 IP地址 和 端口 相同,1个socket 和 100个socket 没什么区别???????
周药师
2010-05-21
打赏
举报
回复
看不懂你说的
Hotthing
2010-05-21
打赏
举报
回复
一个控制命令通道,一个数据传送通道,这就是FTP的思想.
【天运子】
2010-05-21
打赏
举报
回复
[Quote=引用 6 楼 okmnji79513 的回复:]
引用 5 楼 yzcurry 的回复:
这个需要看你的实际情况
比如你就是双方数据的发送,数据之间没有关系,不需要判断是请求或等待回复的,可以用两个线程做
就是这个情况,我不需要等待回复,那 2个线程 用 2个socket 是不是比 2个线程 用 1个socket 效率更高???(假设需要连续不断的接收和发送数据)
[/Quote]我用2个临时的socket 在线程里面创建的,这样可以,至于效率没比过
okmnji79513
2010-05-21
打赏
举报
回复
[Quote=引用 5 楼 yzcurry 的回复:]
这个需要看你的实际情况
比如你就是双方数据的发送,数据之间没有关系,不需要判断是请求或等待回复的,可以用两个线程做[/Quote]
就是这个情况,我不需要等待回复,那 2个线程 用
2
个socket 是不是比 2个线程 用
1
个socket 效率更高???(假设需要连续不断的接收和发送数据)
yzcurry
2010-05-21
打赏
举报
回复
这个需要看你的实际情况
比如你就是双方数据的发送,数据之间没有关系,不需要判断是请求或等待回复的,可以用两个线程做
如果你的双方数据需要做判断后再进行下一步的操作,哪只能用一个线程来做了,这样好控制
【天运子】
2010-05-21
打赏
举报
回复
。。。一个客户端 就一个套接字收发数据啊
加载更多回复(5)
关于
socket
大
数据
收发
解决方案
本文探讨了使用
Socket
进行大
数据
传输的解决方案,适合初学者理解。内容包括基础概念、传输策略以及实战经验,旨在帮助读者掌握高效稳定的
数据
收发
技巧。
【Python】
socket
同时
收发
与多线程防止input阻塞
本文围绕Python的
socket
编程展开,先介绍了
socket
的概念,接着说明完善
收发
逻辑的原因。重点阐述了实现方法,包括客户端单纯发送、输入发送、接收
数据
、合并
收发
代码及同时
收发
,还介绍了服务端简单发送、自定义发送、循环输入、接收、结合功能、多线程及使用自定义客户端程序等内容。
socket
通过多网卡
收发
数据
本文介绍了如何在具有多网卡的系统中使用
Socket
进行
数据
收发
。通过bind机制和ioctl函数,绑定到特定网卡进行TCP编程。讨论了bind在不同情况下的使用,包括INADDR_ANY的含义和安全性问题,以及在Windows网络编程中如何避免端口冲突。
BSD
Socket
的
收发
数据
函数介绍
本文介绍了在Linux环境中,利用BSD
Socket
进行
数据
收发
的方法,将
socket
连接后的文件描述符应用于
数据
传输。
Socket
收发
内部拆包封包函数
在
socket
通信中,
数据
过大可能导致内部缓存溢出,使
收发
数据
出错。为此封装了接收和发送的底层函数,根据缓存大小批次进行
数据
收发
,函数内部有自己的缓冲区,经测试效果良好,还给出了函数代码及recv函数返回值解析。
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章