c - Unix 套接字 C : Connecting from another network

标签 c sockets unix tcp

我开始学习如何使用tcp套接字在C中配置unix服务器/客户端基础应用程序,现在的问题是,我总是简单地使用我在服务器中选择的端口从客户端连接到服务器,并且一个(本地?)地址,例如 192.168.1.X。老实说,我对此一无所知,我认为 192 是本地接口(interface)地址,因此只能在同一网络中实现连接,我也尝试过两台电脑,但仍在同一网络中。来自另一个网络的连接怎么样?这是一件复杂的事情吗?我想仅仅将我的网络提供商 IP 传递给客户端并不能完成这项工作

最佳答案

通常在这种情况下,您在浏览器中打开路由器配置网页,并在“端口转发/触发”部分中输入将连接从 LAN 外部重定向到 LAN 上给定计算机上的某个端口的条目,例如:

#   Service Name          Start Port    End Port    Server IP Address
    1   myServerOnPort9875  9875          9875      192.168.1.7

鉴于您的外部 IP 是 89.75.140.30,您现在可以从任何地方进行连接

telnet 89.75.140.30 9875

到达本地计算机 192.168.1.7 上的端口 9875,假设服务器正在监听 0.0.0.0(IPv4)和 0::0(IPv6)。

关于c - Unix 套接字 C : Connecting from another network,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24351954/

相关文章:

c++ - 您是否应该使用显式类型转换更正有关类型转换的编译器警告?

java - 查看用java中的套接字传输的文件时发生奇怪的事情

multithreading - 使用QTcpServer/QTcpSocket管理来自单个客户端的并发请求

C:pthread 无法在套接字上监听、绑定(bind)和接受

linux - 如何使用 rsync 命令在 Linux 中复制当前日期文件或特定日期文件?

c - 逐步执行可变长度的整数行

c# - C 和 C# 互操作的问题

linux - bash:当它是进程重定向的结果时执行 $0

windows - 一个进程的 read() 可以看到另一个进程的部分 write() 吗?

c - 此处不允许函数定义