(第三季)601-socket编程-tcp服务器端;602-socket编程-tcp客户端

来源:互联网 发布:手机视频慢动作软件 编辑:程序博客网 时间:2024/05/17 21:58

601-socket编程-tcp服务器端

一个软件对应一个端口号(0~6w)

/*    socket编程 tcp协议 网络编程服务端*/using System;using System.Collections.Generic;using System.Linq;using System.Text;//using System.Net.Sockets;using System.Net;namespace taotao{    class Class1    {        static void Main(string[] args)        {            #region 服务端            // 1,创建socket            Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            //2,绑定ip跟端口号192.168.0.112            IPAddress ipaddress = new IPAddress(new byte[] { 192, 168, 0, 112 });            EndPoint point = new IPEndPoint(ipaddress, 7788);//IPEndPoint 是对ip+端口做了一层封装的类            tcpServer.Bind(point);// 向操作系统申请了一个可用的ip跟端口号,用来做通信            //3, 开始监听(等待客户端连接)            tcpServer.Listen(100);// 参数是最大连接数            Console.WriteLine("开始监听");            Socket clientSocket = tcpServer.Accept();//暂停当前线程,直到有一个客户端连接过来,之后进行下面的代码            Console.WriteLine("一个客户端连接过来了");            // 使用返回的socket 跟客户端做通信            string message = "hello 欢迎你!";            byte[] data = Encoding.UTF8.GetBytes(message);    // 对字符串做编码,得到一个字符串的字节数组            clientSocket.Send(data);            Console.WriteLine("向客户端发送了一条数据");            byte[] data2 = new byte[1024];  // 创建一个字节数组用来当做容器,去承接客户端发送过来的数据            int length = clientSocket.Receive(data2);            string message2 = Encoding.UTF8.GetString(data2, 0, length);// 把字节数据转化为一个字符串            Console.WriteLine("接收到了一个从客户端发来的消息" + message2);            #endregion        }    }}



先启动服务端

之后启动客户端

/*    socket编程 tcp协议 网络编程客户端*/using System;using System.Collections.Generic;using System.Linq;using System.Text;//using System.Net.Sockets;using System.Net;namespace taotao{    class Class1    {        static void Main(string[] args)        {            #region 客户端            // 1,创建socket            Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            // 2,发起建立连接的请求            IPAddress ipaddress = IPAddress.Parse("192.168.0.112");// 可以把一个字符串的ip地址转化成一个ipaddress的对象            EndPoint point = new IPEndPoint(ipaddress, 7788);            tcpClient.Connect(point);// 通过ip:端口号 定位一个要连接到的服务器端            byte[] data = new byte[1024];            int length = tcpClient.Receive(data);    // 这里传递一个byte数组,实际上这个data数组用来接收数据            // length 返回值表示接收了多少字节的数据            string message = Encoding.UTF8.GetString(data, 0, length);// 只把接收到的数据进行一个转化            Console.WriteLine(message);            // 向服务器端发送消息            string message2 = Console.ReadLine();// 读取用户的输入 把输入发送到服务器端            tcpClient.Send(Encoding.UTF8.GetBytes(message2));// 把字符串转化成字节数组,然偶发送到服务器端                        #endregion        }    }}












0 0
原创粉丝点击