zoukankan      html  css  js  c++  java
  • C#网络编程学习(1)---Socket之Tcp协议的简单使用

    使用Tcp协议实现最简单的服务器与客户端通信

    1、方法介绍

    public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType);
    参数1:指定Socket使用的寻址方案(IPV4还是IPV6)
    AddressFamily.InterNetwork:IPV4类型
    AddressFamily.InterNetworkV6: IPV6类型

    参数2:指定Socket的类型
    SocketType.Stream:Tcp使用的字节流
    SocketType.Dgram:Udp使用的数据报

    参数3:指定Socket使用的协议
    ProtocolType.Tcp:TCP协议
    ProtocolType.Udp:UDP协议

    IPEndPoint()
    是一个IP地址和端口号的集合

    IPAddress.Parse("127.0.0.1")

    把字符串转换为IPAddress实例

    2、服务器端

    static void Main(string[] args)
    {
        //1.创建socket
        Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
        //2.绑定IP和端口号
        EndPoint point = new IPEndPoint(IPAddress.Parse("172.168.33.33"), 6666);
        tcpServer.Bind(point); //绑定方法
    
        //3.开始监听,等待用户连接
        tcpServer.Listen(100); //监听方法,最大连接数为100
        Socket tcpClient = tcpServer.Accept(); //等待连接,此为阻塞方法
        Console.WriteLine("客户端连接。。。");
    
        //4.接收用户发送的消息
        byte[] data = new byte[1024];
        int length = tcpClient.Receive(data); //接收数据data
        string str = Encoding.UTF8.GetString(data); //字节数组转换为string
        Console.WriteLine("接收到客户端的数据为:" + str);
    
        Console.ReadKey();
    
    }
    

    3、客户端

    static void Main(string[] args)
    {
        //1.创建socket
        Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
        //2.发起连接请求
        EndPoint point = new IPEndPoint(IPAddress.Parse("172.168.33.33"), 6666);
        tcpClient.Connect(point); //连接
    
        //3.向服务器发送消息
        byte[] data = Encoding.UTF8.GetBytes("Hello I am Ffly");
        tcpClient.Send(data);  //发送数据
    
        Console.ReadKey();
    
    }
    

    4、效果

    1. 先运行服务器窗口
    2. 再运行客户端窗口
    3. 在服务器的窗口上会显示客户端的连接消息
  • 相关阅读:
    python浏览本地文件,实现文件路径的选择
    《一线架构师实践指南》--- Refined Architecture
    第七周学习记录
    第五周学习记录
    中国国民经济行业分类数据下载(含爬取代码)
    python机器学习kmeans算法——对文本进行聚类分析
    TensorFlow2深度学习
    深度学习---Caffe之经典模型详解与实战a乐毅,王斌a
    《深度学习实践-基于Caffe的解析》_薛云峰
    Python带我起飞——入门、进阶、商业实战
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/10822229.html
Copyright © 2011-2022 走看看