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. 在服务器的窗口上会显示客户端的连接消息
  • 相关阅读:
    win7 x64怎么枚举所有快捷键呢
    C/C++多种方法获取文件大小
    中缀表达式转后缀表达式(逆波兰表达式)
    检测文件存在的四种方法
    透明窗口与不规则窗口制作方法总结
    Struts 2命令执行漏洞
    Windows 8 无法安装
    从浏览器启动客户端程序
    tesseractocr训练方法
    Algorithm Gossip: 中序式轉後序式(前序式)
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/10822229.html
Copyright © 2011-2022 走看看