簡體   English   中英

C#簡單服務器從互聯網接收連接

[英]c# simple server to receive connection from internet

我已經制作了一個簡單的服務器,使用tcplisten在本地運行,並且可以在本地網絡上正常工作,例如(127.0.0.11:8888)。

但是,現在如何從互聯網接收與服務器的連接,我應該設置什么IP和端口?

謝謝

您仍然可以使用8888。只需確保防火牆設置允許該端口的傳入連接即可。

假設這是Windows計算機,並且假設它是一個簡單的網絡(即您的防火牆將連接從8888轉發到內部IP,或者該計算機具有適當的外部暴露接口),則您應該能夠通過公共連接與計算機的接口。 如果要使用特定的IP地址(127.0.0.1)實例化偵聽器,則可能會阻止連接。

您可以使用IPAddress.Any或在配置中保存IP列表,然后從磁盤加載IP。

IPEnpoint e = new IPEndPoint(IPAddress.Any, 8888)
TcpListener l = new TcpListener(e);

您可能需要檢查是否在某種NAT盒后面。 您可以通過從類似whatismyip的互聯網站點上檢查自己的IP並將其與計算機的IP進行比較來實現。
您還應該更改防火牆規則以允許傳入連接。

PS:默認情況下,Web瀏覽器連接到端口80。您可以通過在URL中提及端口(例如-http: //www.example.com: 8080/ index.html)來連接到其他端口。

您需要做一些事情:

1)登錄到您的路由器並設置端口轉發:

  1. 從連接到路由器的計算機上...
  2. 找出路由器的本地IP地址並在Web瀏覽器中連接到該地址(通用IP為10.0.1.1或10.0.1.254或192.168.1.1或192.168.1.254)。
  3. 在允許您設置端口轉發的路由器中找到菜單選項。
  4. 添加要轉發的端口,然后輸入服務器的網絡IP地址(應接近路由器的IP地址)和所需的端口號。
  5. 保存並關閉。

2)向防火牆添加例外,以允許來自所需端口的TCP通信。

3)找出路由器的公共IP地址(嘗試http://www.myipaddress.com ),然后嘗試使用該地址連接到服務器。

那應該就是您要做的。

您需要在網絡上設置防火牆規則,以將進入該端口上公共IP的所有流量轉發到運行服務器應用程序的計算機的內部IP地址。

您的服務器將需要在具有實時IP的計算機上運行。 服務器可以將其自身綁定到默認IP,也可以顯式提供要綁定的IP地址。 只要沒有其他服務器應用程序在同一IP:Port上進行偵聽,端口就不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM