通过TCP处理多个客户端

时间:2011-05-28 13:43:16

标签: sockets go

好的,我刚开始学习golang,到目前为止我还喜欢它。但是我发现他们的文档并不适合初学者,这是我的问题。 我想编写一个接受连接并向客户端写入内容的小服务器程序。到目前为止没问题。

然而,只要事物得到真正的功能,我就需要能够处理多个客户端,我对goroutines来说也是一个很好的练习。

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

如何将客户端连接传递给goroutine,这样我就可以同时处理多个客户端?

1 个答案:

答案 0 :(得分:0)

好的,想通了。 有些人实际上已经写了我想写的东西了。 https://github.com/dustin/gomemcached/blob/master/mc_conn_handler.go

go handleClient(con);
func handleClient(con net.Conn) {