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 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料