zoukankan      html  css  js  c++  java
  • Socket网络编程学习笔记

    1 服务器 发送消息和接受消息的代码

    namespace Socket_编程_tcp协议_服务端
    {
    class Program
    {
    static void Main(string[] args)
    {
    //1.创建服务端socket类
    Socket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    //2.绑定IP和端口号 192.168.155.1
    IPAddress ipaddress = new IPAddress(new byte[]{192,168,155,1});
    EndPoint point = new IPEndPoint(ipaddress,7788); //ipendpoint是对ip+端口号做了一次封装的类
    tcpServer.Bind(point); //这是向操作系统申请一个可用的ip跟端口号 用来做通信
    //3.开始监听等待客户端做连接
    tcpServer.Listen(100); //参数是最大连接数
    Console.WriteLine("开始监听");
    Socket clientSocket = tcpServer.Accept(); //暂停当前线程,直到有一个客户端连接过来,之后进行下面的代码
    //使用返回的socket跟客户端做通信
    Console.WriteLine("客户端连接过来了");

    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);
    Console.ReadKey();
    }
    }
    }

    2:客户端向服务端发送消息和接受消息代码

    namespace Socket编程_tcp协议_客户端
    {
    class Program
    {
    static void Main(string[] args)
    {
    //1.创建socket
    Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    //2.发起建立连接的请求
    IPAddress ipAddress = new IPAddress(new byte[] {192, 168, 155, 1 }); //用来存储ip地址
    EndPoint point = new IPEndPoint(ipAddress,7788); //用来指用来指定IP地址和端口数据
    tcpClient.Connect(point); //与主机建立连接 通过ip和端口号
    //
    byte[] data = new byte[1024]; //定义一个byte类型的数组

    int length = tcpClient.Receive(data); //接受数据 byte类型的数组,这个data是用来接受数据的
    // length 表示接受了多少字节的数据
    string message = Encoding.UTF8.GetString(data,0,length);
    Console.WriteLine(message);

    //1、服务器端发送消息

    string message2 = Console.ReadLine(); //读取用户的输入 把输入发送到服务器端

    byte[] date = Encoding.UTF8.GetBytes(message2); //把字符串转化成字符数组
    tcpClient.Send(date);
    Console.ReadKey();
    }
    }
    }

  • 相关阅读:
    Juniper常用命令
    jenkins编译代码git脚本报错
    sqlserver服务器常用的性能计数器
    C语言位操作
    【转】接口技术
    【转】带参数的主函数
    进程与线程的区别和联系
    【转】进程与线程的一个简单解释
    【转】什么是堆和栈,它们在哪儿?
    【转】话说C语言const用法
  • 原文地址:https://www.cnblogs.com/ylllove/p/6819113.html
Copyright © 2011-2022 走看看