初始化socket必须bind吗?

ytdmm 2004-05-05 08:46:51
CSocket server;
server.Create(9999,NULL,NULL);
也可以吧?

和下面写法有区别吗?
SOCKADDR_IN serverSockAddr;
serverSockAddr.sin_port=htons(9999);
serverSockAddr.sin_family=AF_INET;
serverSockAddr.sin_addr.s_addr=htonl(INADDR_ANY);

serverSocket=socket(AF_INET, SOCK_STREAM, 0);
bind(serverSocket, (LPSOCKADDR) &serverSockAddr, sizeof(serverSockAddr));

3Q!
...全文
251 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ablewindy 2004-05-08
  • 打赏
  • 举报
回复
同意 firebolt2002(霹雳) ffantasyYD(风之子)
长知识罗!
ytdmm 2004-05-07
  • 打赏
  • 举报
回复
know了,一般情况下,这两种方式指定端口的作用是一样的,但是如果机器有多个ip地址,可以用bind指定一个ip至socket,是这样吧!
XmagicX 2004-05-07
  • 打赏
  • 举报
回复
GZ
firebolt2002 2004-05-07
  • 打赏
  • 举报
回复
说的更简单一些当你的机器上有两块网卡的时候,你可以用BIND绑定一个端口和IP地址(网卡),这样系统会通过你绑定的网卡发送或接收数据。
sharkhuang 2004-05-06
  • 打赏
  • 举报
回复
不必要!但是系统内核其实是bind了的.
microgiant 2004-05-06
  • 打赏
  • 举报
回复
同步就是一样的。
ytdmm 2004-05-06
  • 打赏
  • 举报
回复
各位好像误解我意思了:)

我知道服务器端需要bind一个端口用来监听,我的意思是

serverSocket.Create(9999,NULL,NULL);
以及这种方式:
bind(serverSocket, (LPSOCKADDR) &serverSockAddr, sizeof(serverSockAddr));

这两种bind至9999端口的方式有什么区别?

3Q!
coseu 2004-05-06
  • 打赏
  • 举报
回复
serverSocket.Create(9999,NULL,NULL);这种方法用的是mfc,而bind(serverSocket, (LPSOCKADDR) &serverSockAddr, sizeof(serverSockAddr));这种方法用的是api。实际上第一种方法中mfc也是调用api函数bind来完成绑定端口的工作的。

ffantasyYD 2004-05-06
  • 打赏
  • 举报
回复
是一样的。
serverSocket.Create(9999,NULL,NULL);这种方法用的是mfc,而bind(serverSocket, (LPSOCKADDR) &serverSockAddr, sizeof(serverSockAddr));这种方法用的是api。实际上第一种方法中mfc也是调用api函数bind来完成绑定端口的工作的。
halk 2004-05-05
  • 打赏
  • 举报
回复
楼上说的对,没什么要补充的了。
暗黑帝国 2004-05-05
  • 打赏
  • 举报
回复
服务端必须BIND一个端口用来监听,而客户端就不必BIND,只管往服务器端监听的那个端口发送数据就行,所以可以不必。
ytdmm 2004-05-05
  • 打赏
  • 举报
回复
为什么服务器必须而客户端不是?

如果不这样写会有什么后果?

我仅仅要在服务器和客户端之间传递简单消息,上述两种写法还有区别吗?
UDX协议 2004-05-05
  • 打赏
  • 举报
回复
做服务器必须。
halk 2004-05-05
  • 打赏
  • 举报
回复
不是必须,看你做什么用了。如果是做tcp连接的客户端用,就不必bind。

18,356

社区成员

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

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