演示两个程序之间的通信
服务器
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Sockets; using System.Net; using System.Threading; namespace ConsoleApplication5 { class { private private static static { //服务器IP地址 IPAddress ip = IPAddress.Parse(“127.0.0.1”); serverSocket = new serverSocket.Bind(new serverSocket.Listen(10); //设定最多10个排队连接请求 Console.WriteLine(“启动监听{0}成功“, serverSocket.LocalEndPoint.ToString()); //通过Clientsoket发送数据 Thread myThread = new myThread.Start(); } /// /// /// private { while (true) { Socket clientSocket = serverSocket.Accept();//线程阻塞,每当有新的连接,消除阻塞 clientSocket.Send(Encoding.Unicode.GetBytes(“连接成功!“)); Thread receiveThread = new receiveThread.Start(clientSocket); } } /// /// /// /// private { Socket myClientSocket = (Socket)clientSocket; while (true) { try { //通过clientSocket接收数据 int receiveNumber = myClientSocket.Receive(result); Console.WriteLine(“接收客户端{0}消息{1}”, myClientSocket.RemoteEndPoint.ToString(), Encoding.ASCII.GetString(result, 0, receiveNumber)); } catch (Exception ex) { Console.WriteLine(ex.Message); myClientSocket.Shutdown(SocketShutdown.Both); myClientSocket.Close(); break; } } } } } |
客户端
using System; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespace ConsoleApplication6 { class { private static { //设定服务器IP地址 IPAddress ip = IPAddress.Parse(“127.0.0.1”); Socket clientSocket = new try { clientSocket.Connect(new Console.WriteLine(“连接服务器成功“); } catch { Console.WriteLine(“连接服务器失败,请按回车键退出!“); return; } //通过clientSocket接收数据 int receiveLength = clientSocket.Receive(result); Console.WriteLine(“接收服务器消息:{0}”, Encoding.Unicode.GetString(result, 0, receiveLength)); //通过 clientSocket 发送数据 //for (int i = 0; i < 10; i++) //{ // try // { // Thread.Sleep(1000); //等待1秒钟 // string sendMessage = “client send Message Hellp” + DateTime.Now; // clientSocket.Send(Encoding.ASCII.GetBytes(sendMessage)); // Console.WriteLine(“向服务器发送消息:{0}” + sendMessage); // } // catch // { // clientSocket.Shutdown(SocketShutdown.Both); // clientSocket.Close(); // break; // } //} while (true) { try { string sendMessage = Console.ReadLine()+ DateTime.Now; clientSocket.Send(Encoding.ASCII.GetBytes(sendMessage)); } catch { clientSocket.Shutdown(SocketShutdown.Both); clientSocket.Close(); break; } } Console.WriteLine(“发送完毕,按回车键退出“); Console.ReadLine(); } } } |