【问题标题】:Send/Receive Bytes using TCP Sockets over internet (possibly using static IP)通过 Internet 使用 TCP 套接字发送/接收字节(可能使用静态 IP)
【发布时间】:2011-12-04 06:19:28
【问题描述】:

我在 LAN 上使用 TCP 套接字发送/接收数据取得了成功,但我想通过 Internet 完成同样的任务。我问了一些朋友,并得到了使用静态 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();
   }
}

【问题讨论】:

  • 你为什么使用 [asp.net] 和 [vb.net] 标签?

标签: c# sockets tcp static-ip-address


【解决方案1】:

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

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

【讨论】:

  • 基本上,我想使用 TCP 套接字在互联网上完成发送/接收字节,所以我正在寻找如何在这里使用静态 IP 以及我需要做哪些设置来指定端口(如果有)。同样的事情,我们只为 LAN 指定 IP;在 TCP Sockets 中使用静态 IP 需要做哪些设置?
【解决方案2】:

获得静态 IP 后,您需要将其添加为网络适配器中的 IP 之一,请查看 Setting a static IP guide 以执行相同操作。

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

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

【讨论】:

  • 基本上,我想使用 TCP 套接字在互联网上完成发送/接收字节,所以我正在寻找如何在这里使用静态 IP 以及我需要做哪些设置来指定端口(如果有)。同样的事情,我们只为 LAN 指定 IP;在 TCP Sockets 中使用静态 IP 需要做哪些设置?
  • 嗨,正如我从“服务器”代码的角度解释的那样,您已经可以确保端口 9999(基于您提供的示例代码)可以从服务器外部访问.从客户端,在创建IPEndPoint对象时使用静态ip,然后连接到客户端。
  • 能否请您写下 TCP socket Programming in C# 中的发送和接收端口设置和 IP 设置?
  • 好的,任何涉及客户端-服务器通信的示例都可以正常工作。你可以在codeproject.com/KB/IP/socketsByBobJanova.aspxcodeproject.com/KB/IP/tcpclientserver.aspx查看这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2019-05-07
  • 2016-05-09
  • 2012-11-18
  • 1970-01-01
相关资源
最近更新 更多