模拟服务端
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 进制传输 }
原文地址:http://www.cnblogs.com/OneSeting/p/16876440.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性