如何使用套接字与云服务通信( TCP 或 UDP 支持的)

      最后更新:2021-11-21 16:56:58 手机定位技术交流文章

      一. 购买了云服务器,向用户发放了公共网络上的IP地址以及自动指定的内联网IP地址,这两个地址都可以在服务器管理设置中访问。

      2. 创建UDP或TCP地址和云服务器上的端口是为了让防火墙允许客户访问云服务器;否则他们就无法互动。

      Quake Clouds: 运用规则轻度应用服务器 - 服务器 - 防火墙

      添加自定义应用程序类型、客户端地址IP(例如任何种类)、 UDP 协议规则,以及允许服务器接收端口的政策,即客户端将数据传送到云端服务器门户

      三. 服务器使用云服务器的内联网IP来建立 Socket Socket (UDP 或 TCP 协议), 云服务器的公共网络IP 用于客户端连接和发送 。

      UDP实例

      客户端

      public  class UDPClient
      {

      private static Socket udpClient;
      本文是人权监察站特别报导的一部分。
      public void CreateUDPClient()
      {
      /1,做一个插座
      udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
      2, 将 IP 连接到端口号
      udpClient.Bind(new IPEndPoint(IPAddress.Any, 60001));

      //3,接收数据
      new Thread(ReceiveMessage) { IsBackground = true }.Start();
      控制台。 writeLine ("服务有枪..");

      }

      public  void SendInfo(string content)
      {
      byte[] data = Encoding.UTF8.GetBytes(content);
      udpClient.SendTo(data, severEndPoint);
      }
      void ReceiveMessage()
      {
      while (true)
      {
      EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
      byte[] data = new byte[1024];
      我不确定,在英语中 = udpCliet. receivefrom( data, ref 远程EndPoint);// 此函数将数据源( ip:port) 指定为第二个参数 。
      string message = Encoding.UTF8.GetString(data, 0, length);
      对不起,信息框。 显示 (“ 来自 ip : ” ) + ( 远程Endpoint 作为 IPENDPoint ) 。 端口 + “ 收到的数据 : ” + 信息 ;
      }

      }
      }

      服务器

      public   class UDPServer
      {
      private static Socket udpServer;
      public EndPoint clientPoint;
      public  void CreateUDPServer()
      {
      try
      {
      /1,做一个插座
      udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
      2, 将 IP 连接到端口号
      请接受我的道歉, UdpServer.BIND(新的 IPENDPoint)。

      //3,接收数据
      new Thread(ReceiveMessage) { IsBackground = true }.Start();
      对不起,留言盒。 show ("服务开始..");

      }
      catch(Exception ee)
      {
      MessageBox.Show(ee.ToString());
      }
      }

      public  void SendInfo(EndPoint client)
      {
      try
      {
      udpServer.SendTo(new byte[] { 0x11, 0x22 }, client);
      }
      catch (Exception ee)
      {
      MessageBox.Show(ee.ToString());
      }
      }
      public void SendInfo(string content)
      {
      try
      {
      byte[] data = Encoding.UTF8.GetBytes(content);
      udpServer.SendTo(data, clientPoint);
      }
      catch(Exception ee)
      {
      MessageBox.Show(ee.ToString());
      }
      }
      void ReceiveMessage()
      {
      try
      {
      while (true)
      {
      EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
      byte[] data = new byte[1024];
      我不确定您在说什么。 接收源( 数据, ref 远程EndPoint); // 此函数将数据源( ip:port) 放在第二个参数上 。
      string message = Encoding.UTF8.GetString(data, 0, length);
      SendInfo(remoteEndPoint);
      clientPoint = remoteEndPoint;
      对不起,信息框。 显示 (“ 来自 ip : ” ) + ( 远程Endpoint 作为 IPENDPoint ) 。 端口 + “ 收到的数据 : ” + 信息 ;
      }
      }
      catch(Exception ee)
      {
      MessageBox.Show(ee.ToString());
      }

      }


      }

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13672.html

          热门文章

          文章分类