C# 通过internet使用TCP套接字发送/接收字节(可能使用静态IP)

C# 通过internet使用TCP套接字发送/接收字节(可能使用静态IP),c#,sockets,tcp,static-ip-address,C#,Sockets,Tcp,Static Ip Address,我在通过局域网使用TCP套接字发送/接收数据方面取得了成功,但我希望通过互联网实现同样的目标。我问了一些朋友,得到了使用静态IP的想法。我想知道如何使用静态IP?我的意思是我需要在主机上配置端口设置吗 下面是我想使用的示例代码,仅为您提供一个想法: using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass { public static void Main()

我在通过局域网使用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();
   }
}

一旦您拥有了静态IP,您需要将其作为IP之一添加到网络适配器中,请检查是否执行了相同的操作

然后,您需要确保您的服务器套接字在此IP上列出,因为您正在使用
IPAddress。任何
它都将绑定到系统上所有可用的IP地址


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

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


请先执行此操作,并确保两个系统都能够相互通信,然后请尝试运行此代码。在此之后,您仍然面临问题,请随时与我联系。

为什么要使用[asp.net]和[vb.net]标记?基本上,我想使用TCP套接字通过internet完成发送/接收字节,因此我想了解如何在此处使用静态IP,以及指定端口(如果有)需要进行哪些设置。同样的,我们只为LAN指定IP;在TCP套接字中使用静态IP需要做什么设置?基本上,我想使用TCP套接字在internet上完成发送/接收字节,因此我想了解如何在此处使用静态IP,以及指定端口(如果有)需要做什么设置。同样的,我们只为LAN指定IP;在TCP套接字中使用静态IP要做什么设置?您好,正如我从“服务器”代码的角度所解释的,您已经可以确保端口9999(基于您给出的示例代码)可以从服务器外部访问。从客户端,在创建
IPEndPoint
对象时使用静态ip,然后连接到客户端。您能给我写下发送和接收端口设置以及ip设置,以便在C#中进行TCP套接字编程吗?好的,任何涉及客户端-服务器通信的示例都可以。您可以在或处查看此项