各位大神看到这个问题可能会觉得很好笑,
因为基于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的呢?
请问一般的windows程序具体是怎样与服务器进行socket交互的?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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 数值计算均差系数编程