Socket通讯运行情况分为两种:
- 客户端和服务器端同时运行在一台电脑上,这种情况下客户端和服务器端的ip地址得需要是建立在如:127.0.0.1的环网上,端口号建议设置为3000以上,否则设置的IP地址是无效的。
- 这种情况是客户端和服务器端分别运行在不同的电脑上:将网线连接上两台电脑,接着需要完成的是本地ip的设置,例如服务器的本地IP设置为192.168.1.20,那么本地的IP地址就是服务器的IP地址,接着客户端的IP地址需要和服务器的IP地址保证在同一网段之内,如:192.168.1.30. 接下来便可以测试一下网络是否连通。使用ping 命令符。
测试过程中的异常:
- 在使用ping命令时遇到提示通讯超时,这种情况就需要我们将两台电脑上的防火墙关闭即可。
- 如遇到IP不存在即需要查看IP设置和网线情况了。
通讯内容格式:
ASCII码:
这种就是字符串的格式,通过socket的字节的方式发送出去,通常应用在 Ethernet以太网的通讯上,通讯方式简单方便,协议内容自己随意定制,个性十足。
HEX(16进制):16进制通常应用在modbus tcp的通讯协议上,或者284 ,232等的通讯协议上,采用的是标准的以太网报文格式,发送方式感觉较为繁琐,需要进行字符转换,计算校验符。
以下是字符串转16进制:
private static byte[] HexStrTobyte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16); return returnBytes; }