首页 > 代码库 > Socket通信

Socket通信

1.0 版本

1.1 服务器端

技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Server_1._0
{
    class Program
    {
        static void Main(string[] args)
        {
            //01 创建对象 关键字new
            Socket stk = new Socket(AddressFamily.InterNetwork,//设置IP地址的类型 为ip4
                SocketType.Stream, //设置传输方式 为流式传输
                ProtocolType.Tcp//设置传输协议 为Tcp
            );
            //02 绑定对象 关键字bind()
            stk.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11011));
            //03 监听对象 关键字Listen()
            stk.Listen(10);
            Console.WriteLine("服务器启动成功!");
            //04 接受客户端 关键字Accept()     {证明Accept会阻塞线程}
            Socket client = stk.Accept();
            Console.WriteLine("服务器接受到客户端请求!");
            //05 接受报文 关键字receive
            //05-01 通过字节流传递  定义一个字节数组    {证明Receive也会阻塞线程}
            byte[] bys = new byte[1024];
            int len = client.Receive(bys);
            Console.WriteLine("服务器接收到报文");
            //06 显示接收到的字节数组
            string str = Encoding.UTF8.GetString(bys, 0, len);
            Console.WriteLine(str);
            //07 发送消息 关键字 send
            string mes = "已成功接收到你发的消息:<" + str + ">";
            client.Send(Encoding.UTF8.GetBytes(mes));
            Console.ReadKey();

        }
    }
}
Server

1.2 客户端

技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Client_1._0
{
    class Program
    {
        static void Main(string[] args)
        {
            //01 创建socket 关键字new
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //02 创建连接 关键字connect
            client.Connect(IPAddress.Parse("127.0.0.1"),11011);
            Console.WriteLine("与服务器创建连接");
            //03 发送消息 关键字Send
            //03-01 定义字节数组
            byte[] bys = new byte[1024];
            if (Console.ReadLine() == "1")
            {
                bys = Encoding.UTF8.GetBytes("逍遥小天狼");
                client.Send(bys);
                Console.WriteLine("向服务器发送消息!");
            }
           //04 接受消息
            //int len = 0;
            //while ((len = client.Receive(bys))>0)
            //{
            //    string s2 = Encoding.UTF8.GetString(bys, 0, len);
            //    Console.Write(s2);

            //}
            byte [] by = new byte[1024];
            int len = client.Receive(by);
            Console.WriteLine(Encoding.UTF8.GetString(by,0,len));

            Console.ReadKey();
        }
    }
}
Client

技术分享

2.0 版本

 

Socket通信