博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang实现聊天室(四)
阅读量:2490 次
发布时间:2019-05-11

本文共 1254 字,大约阅读时间需要 4 分钟。

golang实现聊天室(四)

服务端给已经建立连接的客户端发送消息

client1

func main() {	var conn, err = net.DialTimeout("tcp", "127.0.0.1:6888", 30*time.Second)	if err != nil {		log.Fatal("conn error")	}	for {		conn.Write([]byte("user 1\n "))		time.Sleep(5 * time.Second)		re_message := make([]byte, 255)		length, err := conn.Read(re_message)		if err != nil {			return		}		re_message = re_message[:length]		fmt.Printf("%s\n", re_message)	}	conn.Close()}

client2

func main() {	var conn, err = net.DialTimeout("tcp", "127.0.0.1:6888", 30*time.Second)	if err != nil {		log.Fatal("conn error")	}	for {		conn.Write([]byte("user 1\n "))		time.Sleep(5 * time.Second)		re_message := make([]byte, 255)		length, err := conn.Read(re_message)		if err != nil {			return		}		re_message = re_message[:length]		fmt.Printf("%s\n", re_message)	}	conn.Close()}

server

func main() {	var conn, err = net.Listen("tcp","127.0.0.1:6888")	if err != nil {		return	}	for {		c, err := conn.Accept()		if err != nil {			return		}		go Receive(c)	}}func Receive(c net.Conn) {	for {		reveive_byte := make([]byte, 256)		lens, err := c.Read(reveive_byte)		if err != nil {			log.Fatal("Receive error")		}		reveive_byte = reveive_byte[:lens]		fmt.Printf("%s\n", reveive_byte)		c.Write([]byte("123"))	}}

下次目标

服务端建立已连接客户端信息表。

转载地址:http://rkorb.baihongyu.com/

你可能感兴趣的文章
int(3)和int(11)区别
查看>>
201521123061 《Java程序设计》第十一周学习总结
查看>>
代码小思考
查看>>
Unity中的销毁方法
查看>>
ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法...
查看>>
2016-7-15(1)使用gulp构建一个项目
查看>>
CSS 设计指南(第3版) 初读笔记
查看>>
markdown学习/mou
查看>>
CentOS 搭建 LAMP服务器
查看>>
很多人都不知道,其实博客园给我们博客开了二级域名
查看>>
tiny4412 linux+qtopia nfs网络文件系统的挂载
查看>>
Web UI 自动化测试环境搭建 (转载自51测试天地第三十九期上)
查看>>
在Bootstrap开发框架中使用bootstrap-datepicker插件
查看>>
String类中IndexOf与SubString
查看>>
记录下Linux难记实用的命令
查看>>
react 路由 react-router-dom
查看>>
Java工具类——通过配置XML验证Map
查看>>
Leetcode::Subsets
查看>>
JAVA 重写&重载/多态/抽象类/封装/接口/包
查看>>
关于js的function.来自百度知道的回答,学习了.
查看>>