内容简介:聊天室分为服务端和客户端。第一部分为服务端代码,第二部分为客户端代码。执行go build server.go或者go run server.go将会输出:chat room Server is waiting... ,等待客户端连接执行go run client.go或者go build client.go将会输出:Has sent the message!
go语言实现聊天室
聊天室分为服务端和客户端。第一部分为服务端代码,第二部分为客户端代码。
一、服务端代码
//chatroom server package main import ( "fmt" "net" ) //定义函数checkError,用来错误处理 func checkError(err error) { if err != nil { panic(err) } } //定义一个函数,专门负责接收信息的协程 func processInfo(conn net.Conn) { buf := make([]byte, 1024) defer conn.Close() for { //读取数据 numOfBytes, err := conn.Read(buf) if err != nil { break } //如果接收的字节数不为0,说明有消息发过来 if numOfBytes != 0 { fmt.Printf("Has received message: %s", string(buf)) } } } func main() { //开启监听 listen_socket, err := net.Listen("tcp","127.0.0.1:8888") checkError(err) defer listen_socket.Close() fmt.Println("chat room Server is waiting... ") //接收连接 for { conn, err := listen_socket.Accept() checkError(err) //如果有客户端连接,则打开一个协程处理 go processInfo(conn) } }
执行go build server.go或者go run server.go将会输出:chat room Server is waiting... ,等待客户端连接
二、客户端代码
// chat room client package main import ( "fmt" "net" ) func checkError(err error) { if err != nil { panic(err) } } func main() { //连接服务端的信息 conn, err := net.Dial("tcp","127.0.0.1:8888") checkError(err) defer conn.Close() //向服务端发送信息 conn.Write([]byte("Now connection.success!")) fmt.Println("Has sent the message!") }
执行go run client.go或者go build client.go将会输出:Has sent the message!
此时客户端已向服务端发送信息:Now connection.success
我们再查看服务端的输出终端,此时服务端输出如下内容,那就表示客户端与服务端通信成功。
chat room Server is waiting...
Has received message: Now connection.success!
以上所述就是小编给大家介绍的《go语言实现聊天室》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Go语言项目实战:多人聊天室
- 使用Go语言+Protobuf协议完成一个多人聊天室
- h5聊天室模板|仿微信聊天室html5
- 实战swoole【聊天室】
- Netty网络聊天(一) 聊天室的实战(最易懂)
- 如何快速实现一个聊天室?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Amazon Web Services
James Murty / O'Reilly Media / 2008-3-25 / USD 49.99
Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!
正则表达式在线测试
正则表达式在线测试
HEX HSV 转换工具
HEX HSV 互换工具