РЕШЕНИЕ: Я попытался установить соединение с небольшой серверной программой, и она работает отлично. Я мог подключить его к 10.195.5.53
. Моя проблема заключается в программном обеспечении моей клиентской программы, она не скомпилирована правильно.
У меня есть сервер в UNIX SunOs и клиент в Linux. Они подключены к одной сети, и у меня есть доступ к обеим.
Когда я выполняю "клиентскую" программу также на машине UNIX, я могу подключить их, используя локальный адрес: 127.0.0.1
. Но когда я запускаю программу на машине Linux, я не могу подключить клиента.
Здесь ifconfig -a
команда на сервер машина:
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
aggr2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 10.195.5.53 netmask ffffff00 broadcast 10.195.5.255
igb2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 190.10.1.95 netmask ffff0000 broadcast 190.10.255.255
Я попытался подключить клиента, указав два адреса, которые я там видел: 10.195.5.53
, 190.10.1.95
безуспешно.
РЕДАКТИРОВАТЬ: ping 10.195.5.53
успешно подключается из Linux.
Любой совет о том, что следует проверять с помощью IP-адресов или как получить дополнительную информацию о сервере с точки зрения клиента, более чем приветствуется.
После создания серверного сокета я попробовал команду: netstat -a | egrep "7777"
. 7777 - это порт, который я использую с сервером.
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
*.7777 *.* 0 0 49152 0 LISTEN
Означает ли это *, что он прослушивает любой IP-адрес с этим портом? Если да, то почему розетка не подключается.
РЕДАКТИРОВАТЬ: Я пробовал программу как с компьютера Linux, подключенного к локальному хосту, так и с клиентского сокета. Скорее всего у меня проблема с кодом. Некоторая несовместимость с ОС.
Поскольку они могут пинговать друг друга, это, возможно, проблема неправильной конфигурации в приложении, не принимающем внешние соединения, или в брандмауэре, блокирующем входящие соединения. Попробуй это:
Сервер (сначала выключите приложение или используйте другой порт):
nc -l 7777
Клиент:
nc server 7777
Попробуйте что-нибудь напечатать. Если вы видите это на терминале сервера, значит, у вас неправильная конфигурация в приложении. В противном случае проблема в брандмауэре.
Да, *.7777
означает, что он прослушивает "все" интерфейсы. Пытаться arping
из окна linux в ящик Sun. Если поле Sun не отвечает, скорее всего, между ними возникла проблема с оборудованием.
Если вы все же получили ответ, проверьте:
Что-то должно появиться.