socket的端口问题

river_side 2003-08-26 10:19:41
在同一台机器上有3个连接相同IP+端口的客户端程序,那么服务端向3个客户端都发送同样的数据与不同的数据,3个客户端将如何接收数据?是否可以只发送给一个客户端就可让三个客户端都接收到数据?
...全文
35 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
joinrry 2003-08-28
  • 打赏
  • 举报
回复
建议看一下《windows网络编程》
nicolas2001 2003-08-28
  • 打赏
  • 举报
回复
up
sevencat 2003-08-28
  • 打赏
  • 举报
回复
tcpJ 不可能的,
TCP是两两连接的不可能有这种效果
在同样的端口号和IP地址上好像是有可能的,不过看到一份资料好像可以,
但有的操作系统支持有的不支持。
reuseaddr,reuseport主要是这两个选项。
tcp的连接有自己的序列号的因此不可能的。
finix 2003-08-28
  • 打赏
  • 举报
回复
http://www.xfocus.net/articles/200211/458.html
yinzhaohui 2003-08-28
  • 打赏
  • 举报
回复
详细看SOCKET规范,我没有写是那一个函数(我一时也想不起了),希望你自己学会查资科
river_side 2003-08-27
  • 打赏
  • 举报
回复
是的,我测试了一下,正如gzshd(郁闷)和HanZhu1(寒竹) 所说。那么socket的内部机制是不是一个socket连接开辟一个线程,从而同一IP与端口号的客户端仍是相互独立的?也就是说socket接收的数据应该不是存储在整个操作系统级供所有程序共享,而是基于某个应用程序级的,存储在本程序的内存空间中?如果在WINDOWS OS是这样的话,那么在UNIX OS是不是也是这样?
HanZhu1 2003-08-27
  • 打赏
  • 举报
回复
你用的应该是点对点的连接方式,这种方式是不支持你所说的这种工作方式的,只能一个一个的发送
farfh 2003-08-27
  • 打赏
  • 举报
回复
up
gzshd 2003-08-27
  • 打赏
  • 举报
回复
不可以,三个客户端可以连接同一服务器(就是连接的服务器是同一IP,同一端口),但三个客户端不能在同一端口上,因此,三个客户端是相互独立的,虽然它们在同一台机器上,但和在不同机器上是一样的
flinming 2003-08-27
  • 打赏
  • 举报
回复
如果这样用UDP广播了
river_side 2003-08-27
  • 打赏
  • 举报
回复
yinzhaohui(努力) :如何邦定在同一个端口?
yinzhaohui 2003-08-27
  • 打赏
  • 举报
回复
当第一个客户端在邦定端口时如果设置了可多进程使用同一端口,那么后来的客户就可以邦定在同一个端口,系统默认是独享的,
tanyaliji 2003-08-27
  • 打赏
  • 举报
回复
不可以
xiaohyy 2003-08-27
  • 打赏
  • 举报
回复
agree gzshd(郁闷)
ip标识了主机到主机的连接。
端口表示了进程到进程的连接。

三个客户端不可能打开同一个端口。
gzshd 2003-08-27
  • 打赏
  • 举报
回复
当然是这样,每个程序都有自己的buffer,否则端口号起不没有作用了
foxmail 2003-08-26
  • 打赏
  • 举报
回复
广播可以

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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