通过互联网使用TCP套接字发送/接收字节(可能使用静态IP)

本文关键字:字节 静态 IP TCP 互联网 套接字 | 更新日期: 2023-09-27 18:10:53

我在局域网上使用TCP套接字发送/接收数据取得了成功,但我想在互联网上完成同样的工作。我问了我的一些朋友,得到了使用静态IP的想法。我想知道如何使用静态IP?我的意思是我需要在主机上配置端口设置还是什么?

下面是我想使用的示例代码,只是为了给你一个想法:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class MainClass
{
   public static void Main()
   {
      IPEndPoint ip = new IPEndPoint(IPAddress.Any,9999);
      Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
      socket.Bind(ip);
      socket.Listen(10);
      Console.WriteLine("Waiting for a client...");
      Socket client = socket.Accept();
      IPEndPoint clientep =(IPEndPoint)client.RemoteEndPoint;
      Console.WriteLine("Connected with {0} at port {1}",clientep.Address, clientep.Port);
      string welcome = "Welcome";
      byte[] data = new byte[1024];
      data = Encoding.ASCII.GetBytes(welcome);
      client.Send(data, data.Length,SocketFlags.None);
      Console.WriteLine("Disconnected from {0}",clientep.Address);
      client.Close();
      socket.Close();
   }
}

通过互联网使用TCP套接字发送/接收字节(可能使用静态IP)

一旦您有了静态IP,您需要将其添加为网络适配器中的IP之一,请参阅设置静态IP指南。

然后你需要确保你的服务器套接字在这个IP上列出,因为你使用的是IPAddress.Any,它将绑定到你系统上所有可用的IP地址。

最后,您需要在客户端代码中显式地提供静态IP。可能将此IP存储在配置文件中,以便在稍后阶段更改它。如果您愿意,您可以设置自定义域名,并将其指向静态ip,以便使用它而不是ip。

是的,我们需要配置端口和IP,以便我们可以在两台服务器之间进行通信。我已经为此做了一个VPN配置。请确保您能够连接到您试图运行此代码的系统。您可以在命令提示符下运行ipconfig/netstat命令来测试这一点。

请先执行此操作,并确保两个系统能够相互通信,然后请尝试运行此代码。之后如果你还有问题,请随时联系我。