模拟服务端
private string TcpServiceControl(string value) { // 1.按照模拟工具上看 先new一个tcp服务 Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //申请端口,绑定ip IPAddress iPAddress = IPAddress.Parse(_appConfig.ApplictionSettings.ControlTcpIP); IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, Convert.ToInt32(_appConfig.ApplictionSettings.ControlTcpPort)); //绑定ip和端口 serverSocket.Bind(iPEndPoint); //开始监听端口 设置50防止服务器崩溃,设置0表示不限制数量 serverSocket.Listen(0);//传递挂起的连接队列的最大长度 //接收客户端信息 程序会暂停 直到由一个客户端连接过来才会继续向下运行 Socket clientSocket = serverSocket.Accept();//接收一个客户端连接,返回一个socket用来和客户端通讯 //向客户端发送一条数据 byte[] data = System.Text.Encoding.UTF8.GetBytes(value); clientSocket.Send(data); //接收客户端一条消息 byte[] databuffer = new byte[1024];//接收时先定义一个数组 int count = clientSocket.Receive(databuffer);//知道数组中前count个是接收到的数据 String hex = Encoding.ASCII.GetString(databuffer, 0, count); //string msgREceive = System.Text.Encoding.UTF8.GetString(databuffer, 0, count); //Console.WriteLine(msgREceive); //Console.ReadKey();//程序终止的太快,方便观察输出 //关闭服务器端 clientSocket.Close();//关闭与客户端的连接 serverSocket.Close();//关闭服务器自身的连接 return hex; }
模拟客户端
private static void NewMethod() { // 1.按照模拟工具上看 先new一个tcp服务 //Parse将字符串转换为IP地址类型 IPAddress myIP = IPAddress.Parse("192.168.88.1"); //构造一个TcpClient类对象,TCP客户端 TcpClient client = new TcpClient(); //与TCP服务器连接 client.Connect(myIP, 10067); Console.WriteLine("服务器已经连接...请输入对话内容..."); //创建网络流,获取数据流 NetworkStream stream = client.GetStream(); //读数据流对象 StreamReader sr = new StreamReader(stream); //写数据流对象 StreamWriter sw = new StreamWriter(stream); while (true) { string msg = Console.ReadLine(); sw.WriteLine(msg); sw.Flush(); //刷新流 Console.WriteLine("服务器:" + sr.ReadLine()); } client.Close(); Console.Read(); // 2.输入的数据转化为 16 进制传输 }
标签:core,Console,传输数据,serverSocket,new,Net,IPAddress,连接,客户端 From: https://www.cnblogs.com/OneSeting/p/16876440.html