Scoket编程--TCP

来源:互联网 发布:数据的离散程度 编辑:程序博客网 时间:2024/06/06 02:06

以聊天为例,,,注意要开两个vs,开启多客户端,客户端.exe文件在右键–>文件管理器中打开文件夹下–>bin–>Debug–.exe文件
(我这里的工程目录是==》 H:\vs 2015\Socket\Scoket编程\001-Scoket_TCP客户端\bin\Debug)

mulu

服务端代码:

using System;using System.Net;using System.Net.Sockets;using System.Text;namespace Socket_TCP服务端{    class Program    {        static void Main(string[] args)        {            //1.创建服务端的Socket对象,(内网,流,协议)            Socket SeverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            //本机ip地址            IPAddress ipaddres = IPAddress.Parse("192.168.1.11");            //ipendpoint 是对Ip+端口做了一层封装类            EndPoint endpoint = new IPEndPoint(ipaddres,3355);            //2,绑定IP地址和端口,,用来做通信            SeverSocket.Bind(endpoint);            Console.WriteLine("服务端开始监听");            //3,监听,,等待客户端做连接(最大连接数)            SeverSocket.Listen(100);            //4,接收客户端连接,暂停当前线程直达有一个客户端连接后,进行下面的操作            Socket clientScoket = SeverSocket.Accept();            Console.WriteLine("有客户端接入");            //5,使用上面返回的Socket和客户端做通信            string message = "Czhenya 欢迎您连接";            //对字符串做编码,得到一个字符数组            byte[] data = Encoding.UTF8.GetBytes(message);            clientScoket.Send(data);  //向客户端消息            Console.WriteLine("向客户端发送一条数据:"+message);            //创建数组,接收客户端发来的数据            byte[] tempdata = new byte[1024];            int length = clientScoket.Receive(tempdata);            string tempmessage = Encoding.UTF8.GetString(tempdata,0,length);            Console.WriteLine("接到客户端数据:"+tempmessage);            Console.ReadKey();        }    }}

客户端代码:

using System;using System.Net;using System.Net.Sockets;using System.Text;namespace _001_Scoket_TCP客户端{    class Program    {        static void Main(string[] args)        {            //1 创建Socket             Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);            //2 发起建立连接的请求,,,注意和客户端一致            IPAddress ipassress = IPAddress.Parse("192.168.1.11");            EndPoint point = new IPEndPoint(ipassress,3355);            //通过ip端口号,定位一个连接到服务器            tcpClient.Connect(point);            //接收并存放数据的数组            byte[] data = new byte[1024];            //返回表示接收到数据的长度            int length = tcpClient.Receive(data);            //表示从0开始到length(接收到数据)做转换,,            string message = Encoding.UTF8.GetString(data,0,length);            Console.WriteLine(message);            //用户输入,,向服务器端发送消息            string tempMessage = Console.ReadLine();            tcpClient.Send(Encoding.UTF8.GetBytes(tempMessage));            Console.ReadKey();        }    }}

UDP:http://blog.csdn.net/czhenya/article/details/78296923

过程代码中注释的已经很清楚了,,不再赘述,看看运行结果图吧:
1

原创粉丝点击