Несколько соединений с сокетом Java - PullRequest
1 голос
/ 28 марта 2012

Я создал этого игрового бота, где он подключается к игре и начинает играть.Моя проблема в том, что я не могу запустить более одного из них, так как другой не будет работать.

Возможно ли, что если я запускаю 2 экземпляра одной и той же программы, сокеты мешают друг другу?Ведь они подключаются к одному IP с тем же портом?

И иногда после закрытия (просто закрытия cmd) программа не может подключиться снова.Это потому, что я не закрыл соединения правильно?Я надеюсь, что этого достаточно, иначе мне просто нужно опубликовать свой исходный код

С уважением.

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Возможно подключение к одному и тому же сокету / порту несколько раз. На самом деле сокет является двойным узлом: {ip / client port} {ip / port сервера}. Когда вы подключаетесь к серверу, ваш клиентский порт назначается динамически. У вас будет новый и другой клиентский порт для каждого клиента. Так что это должно работать, если серверная сторона не запрещает это.

1 голос
/ 28 марта 2012

У вас должен быть сервер, который прослушивает несколько соединений. Сервер связан с портом, и как только этот порт используется, другое приложение не может его использовать. Так что для сервера просто есть один экземпляр. Несколько клиентов могут подключаться к этому IP / порту, если сервер принимает несколько подключений.

Если клиент подключается к серверу и другие клиенты перестают работать, это может быть связано с тем, что сервер не поддерживает несколько клиентов. Для этого вам нужно использовать многопоточность на сервере. Сервер должен принять клиентский сокет и создать новый экземпляр клиента с собственными объектами StreamReader / Writer.

http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html

1 голос
/ 28 марта 2012

если вы работаете с определенным портом TCP, то существует период ожидания, когда этот порт не может быть временно востребован. также несколько программ не могут прослушивать один и тот же порт TCP. Использовать темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...