新建Form1.frm,窗体记事本代码:
Form1.frm逻辑代码部分:
运行结果:
21:05:11 <Form_Load>-------------------------------------
21:05:11 显示原始未绑定WinsockS和WinsockC信息(相同)
21:05:11 LocalHostName=huawei
21:05:11 LocalIP=192.168.1.20
21:05:11 LocalPort=0
21:05:11 RemoteHost=
21:05:11 RemoteHostIP=
21:05:11 RemotePort=0
21:05:11 <cmdServerOn_Click>-------------------------------------
21:05:11 .Bind绑定了WinsockS (UDP) 192.168.1.20:88
21:05:11 LocalIP=192.168.1.20
21:05:11 LocalPort=88
21:05:11 RemoteHost=
21:05:11 RemoteHostIP=
21:05:11 RemotePort=0
21:05:11 <cmdSend_Click>-------------------------------------
21:05:11 显示WinsockC发送前信息
21:05:11 LocalHostName=huawei
21:05:11 LocalIP=192.168.1.20
21:05:11 LocalPort=77
21:05:11 RemoteHost=192.168.1.20
21:05:11 RemoteHostIP=
21:05:11 RemotePort=88
21:05:11 【证明】Winsock 设置只能使用 .RemoteHost(对方IP或域名),因为.RemoteHostIP 和 .LocalIP只读
21:05:11 [WinsockC cmdSend_Click]192.168.1.20:77 -> 发送用 RemoteHost=192.168.1.20:88 另外.RemoteHostIP=
21:05:11 <WinsockS_DataArrival>-------------------------------------
21:05:11 [WinsockS_DataArrival]192.168.1.20:88收到 RemoteHostIP=192.168.1.20:77 (1个字节) 另外.RemoteHost=
21:05:11 【证明】接收只能使用 .RemoteHostIP,因为不可能知道对方的域名。
21:05:11 显示WinsockS回复前信息
21:05:11 LocalHostName=huawei
21:05:11 LocalIP=192.168.1.20
21:05:11 LocalPort=88
21:05:11 RemoteHost=
21:05:11 RemoteHostIP=192.168.1.20
21:05:11 RemotePort=77
21:05:11 【证明】回复只能使用 .RemoteHostIP,因为不可能知道对方的域名。
21:05:11 <WinsockC_DataArrival>-------------------------------------
21:05:11 [WinsockC_DataArrival]192.168.1.20:77收到 RemoteHostIP=192.168.1.20:88 (1个字节) 另外.RemoteHost=
21:05:11 【证明】接收只能使用 .RemoteHostIP,因为不可能知道对方的域名。
结论:
发送要用 .RemoteHost(可以设置对方IP或域名)
接收要用 .RemoteHostIP(不可能知道对方的域名) ,接收后回复用只读的 .RemoteHostIP。