【网络通信】服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?...

1. 服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?

答:对。建立连接时服务器会分配一个新的Socket,但是用的源端口号还是80端口。套接字是由协议类型、源IP、目的IP和源端口、目的端口五部分组成的,理论上讲,不同连接的套接字只要满足这五部分不完全相同即可。只要不完全相同,收发数据时就能区分不同连接的数据。

附:这也是通过tcpdump等网络抓包工具抓取服务器监听端口的数据可以抓取到该服务下所有连接的网络包的原因所在。

2.使用同一端口号收发数据,是不是会导致带宽利用率降低,或者端口阻塞?

答:不会。端口只是一个数字,并非实际的物理端口,所以不存在端口阻塞的问题。在数据的通信网络传输过程中,只用到了网络层、链路层和物理层。端口是传输层的东西,和它没有关系。所以,端口号会影响带宽使用的认识是错误的。

 

转载于:https://www.cnblogs.com/alwu007/p/5344669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤来在服务器使用Socket类创建服务器端监听客户端的连接请求: 1. 引用命名空间:在代码中引用System.Net.Sockets命名空间,以便使用Socket类。 2. 创建Socket对象:使用Socket类的构造函数创建一个Socket对象。 ``` Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); ``` AddressFamily.InterNetwork指定使用IPv4协议,SocketType.Stream指定使用流式套接字,ProtocolType.Tcp指定使用TCP协议。 3. 绑定IP地址和端口号:使用Bind方法将Socket对象绑定到指定的IP地址和端口号上。 ``` IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888); listener.Bind(localEndPoint); ``` 这里使用了IP地址127.0.0.1和端口号8888。 4. 开始监听连接请求:使用Listen方法开始监听客户端的连接请求。 ``` listener.Listen(100); ``` 这里设置最大连接数为100,即同最多允许100个客户端连接。 5. 接受连接请求:使用Accept方法接受客户端的连接请求,并返回一个新的Socket对象,用于与客户端进行通讯。 ``` Socket handler = listener.Accept(); ``` 这里使用了一个while循环,可以接受多个客户端的连接请求。 ``` while (true) { Socket handler = listener.Accept(); // 处理客户端请求 } ``` 注意:在处理完客户端请求后,需要关闭Socket对象。 可以根据业务需求,对接收到的客户端请求进行解析和处理。例如,可以使用StreamReader和StreamWriter类来读取和写入数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值