Я работаю над проектом на основе сервера / клиента.Я почти закончил свой код на стороне сервера.
Я разрабатываю серверное приложение в EclipseCDT на Ubuntu Desktop, и все просто отлично работает.
Но при развертывании моего приложения на сервере Ubuntu (я пробовал сервер10.04 / 10.10), серверное приложение может нормально запускаться (в ожидании соединения), но тот же клиент просто не может подключиться к серверу.
Я использую Socket для получения и отправки данных клиенту или из него.
Питер
PS: если я установлю sudo apt-get install ubuntu-desktop
на свой сервер, то все снова будет работать нормально.
===========================================================================
Новые сведения из исходного кода:
LabelStartBlocking:
int newScoketId = ::accept(socketId, 0, 0); // socketId == 3 ::accept is define in socket.h
// waiting for connection
LabelResume: // if new connection coming
// Do something with newSocketId
Различие в поведении между Ubuntu Desktop и Server:
Вкл.Версия Ubuntu Desktop, при запуске сервера он блокируется на LabelStartBlocking
с помощью процедуры сокета ::accept
;и затем, если приходит новое соединение, сервер возобновит работу на LabelResume
и создаст новое сокетное соединение, используя возвращаемое значение newSocketId
;
Однако в версии Ubuntu Server, когда сервер запускается, этотакже блокируется на LabelStartBlocking
с помощью процедуры сокета ::accept
, но если приходит новое соединение, сервер не возобновит работу на LabelResume
, и новое соединение с сокетом НЕ МОЖЕТ быть создано.
Можете ли вы, ребятавыручить меня?
Питер