TCP通讯

mac2022-06-30  28

#region TCP通讯检验连接状态与发送命令         public static bool GetCallBackData(string comMand, out string message)         {             string IP =目标IP;             int port =目标端口;             message = "未连接";             bool flag = false;             try             {                 IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(IP), port);//IP和端口                 Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);                 ConnectSocketDelegate connect = ConnectSocket;                 IAsyncResult asyncresult = connect.BeginInvoke(ipep, sock, null, null);                 bool connectSuccess = asyncresult.AsyncWaitHandle.WaitOne(Convert.ToInt32(TimeOut), false);                 if (!connectSuccess)                 {                     message = "连接超时。";                     flag = false;                 }                 else                 {                     TcpClient tcpClient = new TcpClient();                     tcpClient.Connect(IPAddress.Parse(IP), port);                     if (tcpClient.Connected)                     {                         using (var ntwStream = tcpClient.GetStream())                         {                             if (ntwStream.CanWrite)                             {                                 Byte[] bytSend = Encoding.UTF8.GetBytes(comMand);                                 var newByteSend = bytSend.ToList();                                 //newByteSend.Add(0x0d);//这里增加分隔符                                 bytSend = newByteSend.ToArray();                                 ntwStream.Write(bytSend, 0, bytSend.Length);                                 //var buffer = new byte[1024];                                 //var count = ntwStream.Read(buffer, 0, 1024);                                 //message = Encoding.UTF8.GetString(buffer, 0, count);                                 //message = message.Replace("\r", "");                                 flag = true;                             }                             else                             {                                 message = "无法写入数据流";                                 ntwStream.Close();                                 flag = false;                             }                         }                         tcpClient.Close();                     }                 }             }             catch             {                 message = "连接出现异常";             }             return flag;         }         private delegate string ConnectSocketDelegate(IPEndPoint ipep, Socket sock);         private static string ConnectSocket(IPEndPoint ipep, Socket sock)         {             string exmessage = "";             try             {                 sock.Connect(ipep);             }             catch (System.Exception ex)             {                 exmessage = ex.Message;             }             finally             {             }             return exmessage;         } #endregion

转载于:https://www.cnblogs.com/fengmingming/p/10977665.html

相关资源:TCP和MODBUS-TCP通讯调试软件V1.2_Wince_Winxp_通用版
最新回复(0)