当前位置:首页 > Windows程序 > 正文

使用C#中的Socket进行通讯

2024-03-31 Windows程序

class Program { static void Main(string[] args) { Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(new IPEndPoint(IPAddress.Parse("10.6.0.38"), 88)); serverSocket.Listen(19); serverSocket.BeginAccept(ClientAccept, serverSocket); Console.ReadLine(); } static byte[] buffer = new byte[1024]; static void ClientAccept(IAsyncResult ar) { Socket serverSocket = ar.AsyncState as Socket; Socket clientSocket = serverSocket.EndAccept(ar); clientSocket.Send(Encoding.UTF8.GetBytes("hellooo")); clientSocket.BeginReceive(buffer, 0, 1024, SocketFlags.None, ServerReceive, clientSocket); serverSocket.BeginAccept(ClientAccept, serverSocket); } static void ServerReceive(IAsyncResult ar) { Socket clientSOcket = ar.AsyncState as Socket; try { int len = clientSOcket.EndReceive(ar); if(len == 0) { clientSOcket.Close(); return; } Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, len)); clientSOcket.BeginReceive(buffer, 0, 1024, SocketFlags.None, ServerReceive, clientSOcket); } catch (Exception e) { Console.WriteLine(e); clientSOcket.Close(); } Console.ReadLine(); } } 客户端 class Program { static void Main(string[] args) { byte[] buffer = new byte[1024]; Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSocket.Connect(new IPEndPoint(IPAddress.Parse("10.6.0.38"), 88)); int len = clientSocket.Receive(buffer, 0, 1024, SocketFlags.None); Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, len)); while (true) { string temp = Console.ReadLine(); if (temp == "c") { clientSocket.Close(); return; } byte[] tempByte = Encoding.UTF8.GetBytes(temp); clientSocket.Send(tempByte); } } }

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/33810.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494587访问次数
  • 建站天数
  • 友情链接