博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中使用TCP通信
阅读量:6281 次
发布时间:2019-06-22

本文共 2159 字,大约阅读时间需要 7 分钟。

TCP通信需要通信双方都在线,所以需要先启动服务端进行监听,客户端才能获得连接,服务端代码:

static void Main(string[] args)        {            TcpClient client = null;            NetworkStream stream = null;            byte[] buffer = null;            string receiveString = null;            IPAddress localIP = IPAddress.Parse("127.0.0.1");            int localPort = 11000;            TcpListener listener = new TcpListener(localIP, localPort);//用本地IP和端口实例化Listener            listener.Start();//开始监听            while (true)            {                client = listener.AcceptTcpClient();//接受一个Client                buffer = new byte[client.ReceiveBufferSize];                stream = client.GetStream();//获取网络流                stream.Read(buffer, 0, buffer.Length);//读取网络流中的数据                stream.Close();//关闭流                client.Close();//关闭Client                receiveString = Encoding.Default.GetString(buffer).Trim('\0');//转换成字符串                Console.WriteLine(receiveString);            }        }

只有服务端开启监听后,客户端才能正确连接,所以服务端要一直开启监听,客户端每次发送数据,都要首先与服务端建立连接,连接建立完成后才进行数据发送。客户端代码:

static void Main(string[] args)        {            string sendString = null;//要发送的字符串            byte[] sendData = null;//要发送的字节数组            TcpClient client = null;//TcpClient实例            NetworkStream stream = null;//网络流            IPAddress remoteIP = IPAddress.Parse("127.0.0.1");//远程主机IP            int remotePort = 11000;//远程主机端口            while (true)//死循环            {                sendString = Console.ReadLine();//获取要发送的字符串                sendData = Encoding.Default.GetBytes(sendString);//获取要发送的字节数组                client = new TcpClient();//实例化TcpClient                try                {                    client.Connect(remoteIP, remotePort);//连接远程主机                }                catch (System.Exception ex)                {                    Console.WriteLine("连接超时,服务器没有响应!");//连接失败                    Console.ReadKey();                    return;                }                stream = client.GetStream();//获取网络流                stream.Write(sendData, 0, sendData.Length);//将数据写入网络流                stream.Close();//关闭网络流                client.Close();//关闭客户端            }        }

转载地址:http://nyxva.baihongyu.com/

你可能感兴趣的文章
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>