NetDomainer 2016-05-31 07:47 采纳率: 20%
浏览 1046

请问一般的windows程序具体是怎样与服务器进行socket交互的?

各位大神看到这个问题可能会觉得很好笑,
因为基于socket的方法实在太多了。
但是问题是一般的示例程序中,
是需服务器先打开相应的ipendpoint终端并处于等待状态,
其代码类似如下(c#):
IPAddress clientAddress = IPAddress.Parse("222.222.222.222");//任意的客户端地址
IPEndPoint ipe = new IPEndPoint(clientAddress,2222);
Socket socket = new socket(...);
socket.bind(ipe);
socket.Listen(1);
Socket client = socket.Accept();
当在执行最后一句时,线程将处于等待状态直到客户端连接。
但在实际情况比如聊天程序中,服务端是难以预测到客户端的访问的,也就是说
上面代码中的IPEndPoint并不确定,那又何谈等待客户端连接呢?
那么实际情况中服务器是如何知晓请求客户端的IPEndPoint即其IP地址以及端口号
而由此建立与客户端的双向Socket的呢?

  • 写回答

1条回答 默认 最新

  • oyljerry 2016-05-31 08:12
    关注

    实际中,服务器都是绑定自己的地址,然后bind,Listen,Accept中等待客户连接,连接建立后,得到客户端的IP等信息,并不需要提前知道客户端的信息。

    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程