首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于SOCKET的IP,端口,以及绑定,该如何解决

2012-04-15 
关于SOCKET的IP,端口,以及绑定问题:1.是否每个SOCKET 都需要有IP 以及PORT 属性才能执行文件传输操作?2.为

关于SOCKET的IP,端口,以及绑定
问题:
  1.是否每个SOCKET 都需要有IP 以及PORT 属性才能执行文件传输操作?
  2.为什么有的SOCKET 需要绑定,有的不需要?
  用TCP协议,面向连接,服务器端监听的SOCKET 需要绑定IP PORT ,而客户端无需绑定,请问客户端的端口号是多少?, 服务器怎么知道客户端的端口号
  而UDP协议,无连接,接收端需要bind() ,发送端反而不需要bind(),那么,发送端的PORT是什么?

[解决办法]
1.是否每个SOCKET 都需要有IP 以及PORT 属性才能执行文件传输操作?
套接字最基础的,需要有IP和PORT,要不它往哪里发,从哪个接受呢

2.为什么有的SOCKET 需要绑定,有的不需要?
不是不需要,而是系统默认指定了
TCP协议,面向连接,服务器端监听的SOCKET 需要绑定IP PORT ,而客户端无需绑定,请问客户端的端口号是多少?, 服务器怎么知道客户端的端口号
客户端被默认指定了,当然你可以直接bind IP和PORT,服务器接收函数recv或者recvfrom或者其他WSARecv等等,他们都有一个参数SOCKADDR_IN结构体,里面保存了发送端的IP和PORT信息等。
[解决办法]
而UDP协议,无连接,接收端需要bind() ,发送端反而不需要bind(),那么,发送端的PORT是什么?

可以通过函数getsockname()得到bind的PORT
[解决办法]
1,IP和port不算是属性,相当于参数
2,绑定只是因为你需要一个端口号来使用,否则将会是一个自动端口号
[解决办法]
领教了,多多学习

热点排行