C#_Socket编程基础(服务端与客户端)

使用Socket编程,实现服务端与客户端的接收发消息

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace Socket编程_tcp服务端
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.创建Socket 客户端                    (连接方式 内网 ,传输类型 流,TCP协议)
            Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            //2.绑定IP与端口号
            //IPAddress ipaddress = new IPAddress(new byte[] { 192, 168, 190, 1});//创建IP对象
            IPAddress ipaddress = IPAddress.Parse("192.168.190.1");//等价于上方 【将字符串 转化为IP 地址对象】
            EndPoint point = new IPEndPoint(ipaddress, 8888);//创建IP 与端口号对象
            tcpServer.Bind(point);//2.服务端绑定 IP与端口号

            //3.开始监听
            tcpServer.Listen(10);//参数为 最大的连接数
            Console.WriteLine("服务器开始监听");
            //4.接收链接的 客户端【用于 与客户端之间的通信】
             Socket clientSocket = tcpServer.Accept();
            Console.WriteLine("有一个客户端已连接");

            //与客户端通信 发送消息
            string message = "服务端:欢迎你的连接";
            byte[] data = Encoding.UTF8.GetBytes(message);
            clientSocket.Send(data);
            //接收客户端发送的数据
            byte[] data2 = new byte[1024];
            int length = clientSocket.Receive(data2);//接收 的消息 存入到data2字节中  返回值为实际接收的字节长度
            string receiveMessage = Encoding.UTF8.GetString(data2, 0, length);//将字节解码为字符串 ,从0开始,解码的长度(使用数据接收到数据的长度)
            Console.WriteLine("客户端发送的信息:"+ receiveMessage);

            Console.ReadKey();

        }
    }
}

using System;
using System.Net.Sockets;
using System.Text;

namespace Socket编程_tcp客户端
{
    class Program
    {
        static void Main(string[] args)
        {

            //1.创建客户端Socket
            Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            //2.创建连接【连接服务器】
            tcpClient.Connect("192.168.190.1", 8888);
            Console.WriteLine("已连接服务器");
            //3.接收消息
            byte[] data = new byte[1024];//创建字节数组 用于存储 接收的数据
            int length = tcpClient.Receive(data);//接收 的消息 存入到data字节中  返回值为实际接收的字节长度

            Console.WriteLine(Encoding.UTF8.GetString(data, 0, length));
            //发送数据
            Console.WriteLine("请输入发送给 服务端的数据:");
            string message = Console.ReadLine();
            tcpClient.Send(Encoding.UTF8.GetBytes(message));
            
            Console.ReadKey();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44906202/article/details/128621280