博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 简单TCP协议
阅读量:5141 次
发布时间:2019-06-13

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

需要引用 using System.Net;
using System.Net.Sockets;
1 namespace TCPServer { 2     class Program { 3         static void Main(string[] args) { 4             int port = 888;//端口 5             TcpClient tcpClient;//创建TCP连接对象(存入客服端所链接) 6             IPAddress[] serverIP= Dns.GetHostAddresses("127.0.0.1");//定义IP地址 7             IPAddress localAddres = serverIP[0];//Ip地址; 8             TcpListener tcpListener = new TcpListener(localAddres, port);//监听套接字 9             tcpListener.Start();//开始监听10             Console.WriteLine("服务器启动成功,等待用户接入。。。");//输出信息11             try {12                 tcpClient = tcpListener.AcceptTcpClient();//每接收一个客服端生成一个TcpClient13                 NetworkStream networkStream = tcpClient.GetStream();//获取网络数据流14                 BinaryReader reader = new BinaryReader(networkStream);//定义数据读取对象15                 BinaryWriter writer = new BinaryWriter(networkStream);//定义数据写入对象16                 while(true) {17                     try {18                         string strReader = reader.ReadString();//接收消息19                         string[] strReaders = strReader.Split(new char[] { ' ' });//截取客服端信息20                         Console.WriteLine("有客服端接入,客户IP:" + strReaders[0]);//输出接收客服端IP地址21                         string strWriter = "我是服务器,欢迎光临";//定义服务端要写的内容22                         Console.WriteLine("来自客服端的消息:" + strReaders[1]);//输出接收的消息23                         writer.Write(strWriter);//向对方发送消息24                     }25                     catch {26                         break;27                     }28                 }29             }30             catch {31                 Console.WriteLine("接收数据失败");32             }33 34         }35     }36 }
View 服务端
1 namespace TCPClient { 2     class Program { 3         static void Main(string[] args) { 4             TcpClient tcpClient = new TcpClient();//创建一个TcpClient对象,自动分配主机IP地址和端口号 5             tcpClient.Connect("127.0.0.1", 888);//连接服务器,其IP和端口号为127.0.0.1和888 6             if (tcpClient != null) { 7                 Console.WriteLine("连接服务器成功"); 8                 NetworkStream networkStream = tcpClient.GetStream();//获取网络数据流 9                 BinaryReader reader = new BinaryReader(networkStream);//定义数据读取对象10                 BinaryWriter writer = new BinaryWriter(networkStream);//定义数据写入对象11                 string localip = "127.0.0.1";//存储本机IP,默认值为127.0.0.112                 IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());//获取所有Ip地址13                 foreach (var item in ips) {14                     if (!item.IsIPv6SiteLocal)//如果不是ipv615                         localip = item.ToString();16                 }17                 writer.Write(localip + " 你好服务器,我是客服端");//向服务器发送消息18                 while (true) {19                     try {20                         string strReader = reader.ReadString();//接收服务器发送的数据21                         if(strReader!=null) {22                             Console.WriteLine("来自服务器的消息:" + strReader);//输出接收服务器的消息23                         }24                     }25                     catch {26                         break;//出错退出循环27                     }28                 }29             }30             else {31                 Console.WriteLine("连接服务器错误");32             }33         }34     }35 }
View 客服端

上述代码,通俗易懂,注释详细,适合小白学习。

 

转载于:https://www.cnblogs.com/zgrh/p/11059895.html

你可能感兴趣的文章
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>