【问题标题】:Client-server in C and ethernet connectionC和以太网连接中的客户端-服务器
【发布时间】:2012-10-02 16:04:47
【问题描述】:

我正在尝试用 c 开发一个小的客户端-服务器应用程序。为此,我拿了一个源代码:http://www.iprelax.fr/outils/c_prog5.php

它在本地工作,无需更改 IP 地址或端口。我尝试使用 2 台计算机(mac os 和 ubuntu)。它们通过以太网电缆连接,我们在此接口 (eth0) 上定义了静态 IP 地址 10.0.0.10 和 10.0.0.20。在客户端,我们改变了这一行:

char *msg, *htoname = "127.0.0.1";

用服务器ip地址但是不起作用,没有错误。

我们尝试更改端口号,但仍然是同样的问题。

我们看到了 netstat 和 netcat 命令的任何内容。

如何在两台电脑之间运行应用程序?

感谢您的帮助

【问题讨论】:

  • 您必须显示更多代码!因为我们不知道你在做什么,所以无法说。
  • 另外,您是直接连接两台计算机还是通过集线器/交换机连接?如果您直接执行此操作,而计算机之间没有任何集线器/交换机,则需要特殊的网络电缆。
  • @JoachimPileborg 现在大多数现代网卡可能都有自动感应端口。当然,使用开关可以确定。

标签: c client-server


【解决方案1】:

当在两台机器之间移动时,防火墙通常会阻止传入连接,即您的服务器机器应该允许客户端连接到自己。

如果您的服务器在 Ubuntu 上,则您使用的是 Linux IP 表。添加规则以允许传入连接的服务器端口或完全禁用 IP 表。

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5800 -j ACCEPT

这个问题的答案详细列出来

using ip tables on stack overflow

【讨论】:

  • 谢谢,我们将防火墙配置为接受另一台计算机的连接,它工作正常:)
  • 不客气。当我第一次将套接字客户端服务器从单台机器移动到多台机器时,我自己就遇到了这个问题。所以这是一个可疑的原因。
猜你喜欢
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2013-05-18
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多