Обработка нескольких клиентов через TCP - PullRequest
0 голосов
/ 28 мая 2011

Хорошо, я только начал изучать Голанг, и мне это до сих пор нравится. Однако я не считаю их документацию подходящей для начала. Вот моя проблема. Я хотел написать небольшую серверную программу, которая принимает соединения и что-то пишет клиенту. Пока нет проблем с этим.

Однако, как только эта вещь приобретет реальную функциональность, мне нужно будет работать с несколькими клиентами, что, впрочем, также было бы хорошим упражнением для горутин.

listener, error := net.Listen("tcp", remote)
con, error := listener.Accept()
go handleClient(&con);
func handleClient(con *net.Conn) {

Я вырезал большую часть кода. Проблема в том, что, что бы я ни пытался, я не могу передать con.

con.RemoteAddr undefined (type *net.Conn has no field or method RemoteAddr)

(найдено, что в этом примере: http://raycompstuff.blogspot.com/2009/12/simpler-chat-server-and-client-in.html). Поэтому я попытался просмотреть документацию, но она просто дала мне источник сетевого пакета. Прочитайте через источник, и понял, что это должно быть

undefined: TCPConn

Как я могу передать соединение клиента с программой, чтобы я мог обрабатывать несколько клиентов одновременно?

1 Ответ

0 голосов
/ 28 мая 2011

Хорошо, разобрался. Есть парень, который на самом деле уже написал то, что я хотел написать в го. https://github.com/dustin/gomemcached/blob/master/mc_conn_handler.go

go handleClient(con);
func handleClient(con net.Conn) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...