社区
网络编程
帖子详情
收发数据,用一个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)
请问这两种方式有区别吗?
如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?
...全文
550
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)
C
Socket
通信多线程
数据
双向
收发
实例VS2010(全部源码)
最新的C C++
Socket
技术总结! 开发环境:VS2010 实现功能: 1、运用多线程和
Socket
技术实现
Socket
Server端侦听多个客户端请求; 2、实现服务器端循环处理客户端不同请求从而实现不同测试要求,并向客户端循环发送
数据
; 3、实现客户端向服务器端发送不同测试命令,并接收服务器端发送的
数据
; 4、运用指针上下文实现不同线程的
数据
共享; 5、实现多个客户端同时连接服务器端; 6、服务器端程序和客户端程序可以运行在同一台计算机,也可以运行在两台计算机。 测试方法: 1、打开ServerDemo.exe 2、打开ClientDemo.exe 并输入127.0.0.1(同一台计算机)或目标机IP地址(两台计算机)
QT
socket
通信,
收发
结构体.zip
在Qt里利用TCP/IP协议,
socket
套接字设计实现结构体
数据
的
收发
,类似实现简单的自定义通信协议。发送的结构体包含帧头(占两字节)、
数据
长度(占一字节)、
数据
(不多于64字节)、校验和(占
一个
字节)。
客户端app多个线程对
一个
socket
发送
数据
客户端一般是
一个
发送线程,
一个
socket
多个发送线程竞争
一个
socket
没什么意义,不会提高发送速度,因为
socket
只有
一个
,只要
socket
在发送
一个
线程的
数据
时,该
socket
就被占用了,是不会响应其他线程的发送
数据
请求的。除非客户端维护有多个
socket
。 服务端使用多线程向多个客户端同时发送
数据
是因为服务端维护着多个
socket
,每个
socket
对应
一个
客户端session连接。 参考: 客户端:多线程使用单个
SOCKET
发数 请教:多线程使用同
一个
socket
进行
数据
收发
会出现什么问题?
linux 网络编程:使用两线程实现
socket
同时
收发
数据
工作中最近有使用到
socket
向客户端同时发送和接收
数据
,因为是嵌入式linux设备,且要求只能同时
一个
客户端连接该端口。考虑到节省系统资源,只创建了
两个
线程分别实现服务端的
收发
数据
。下面直接上代码,该代码为在PC机上程序,已作详细注释。 server.c #include #include #include #include #include #include #include #incl...
python网络编程之
socket
模块
收发
数据
socket
模块是网络通信的基础,在
socket
模块中的
socket
()函数是用来创建套接字对象。要创建套接字,必须使用
socket
.
socket
()函数,一般语法如下:
socket
.
socket
(
socket
_family,
socket
_type)
socket
_family是AF_INET(面向网络的)或AF_UNIX(基于文件的),
socket
_type是SOCK_STREAM(传输控制协议TCP)或SOCK_DGRAM(用户
数据
报协议UDP)。下面是创建两种套接字的方法: import sock
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章