详解Socket程序结构分析及运用

描述

简易的机器人和PLC信息提取。

----Socket程序结构分析: ---------

privateSocket server; 声明 Socket类提供一组丰富的网络通信方法和属性。

privateSocket client;

public void OpenTCP() ----建立程序

{

myThreadDelegate = new ThreadStart(Listen);

委托属性的变量激活委托指令启动线程监听

myThread = new Thread(myThreadDelegate);初始化线程类型变量

myThread.Start();线程类型变量开始执行

}

///

/// 创建TCP服务端并监听

///

public void Listen()//创建tcp服务端

{

//设置IP

string IP = ipAddressTB.Text;

Socket

int Port = Convert.ToInt32(portTB.Text); 设置端口

Socket

//初始化终结点实例

IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(IP), Port);用指定的地址和端口号初始化

//初始化SOCKET实例

server = new Socket(localEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

//允许SOCKET被绑定在已使用的地址上。

Socket(AddressFamily, SocketType, ProtocolType)使用指定的地址族、套接字类型和协议初始化

server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

ShowMsg(“等待客户端连接。..”); 发出信息

try

{

//绑定

server.Bind(localEP);

//监听10次

server.Listen(10);

client = server.Accept(); 服务接收

IPEndPoint clientIP = (IPEndPoint)client.RemoteEndPoint;

ShowMsg(“已连接的客户端:” + clientIP.Address + “,端口:” + clientIP.Port);

Received_Robot();从机器人接收信息

}

catch (Exception ex)

{

//MessageBox.Show(ex.Message, “Listen_Error”);

}

}

IPEndPoint(IPAddress.Parse(IP), Port)

重载

IPEndPoint(Int64, Int32)用指定的地址和端口号初始化 IPEndPoint 类的新实例。

IPEndPoint(IPAddress, Int32)用指定的地址和端口号初始化 IPEndPoint 类的新实例。

Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

InterNetwork2IP 版本 4 的地址。

Stream支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。 此类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。 Stream使用传输控制协议 (ProtocolType.Tcp) 和 AddressFamily。InterNetwork 地址族。

Tcp6传输控制协议。
编辑:lyn

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分