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

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

golang实现聊天室(三)

实现多个客户端同时给服务端发送消息,服务端接受并打印出来

client1

func main() {	var conn, err = net.DialTimeout("tcp", "127.0.0.1:5888", 30*time.Second)	if err != nil {		log.Fatal("conn error")	}	for {		conn.Write([]byte("user 2"))		time.Sleep(3 * time.Second)	}	conn.Close()}

client2

func main() {	var conn, err = net.DialTimeout("tcp", "127.0.0.1:5888", 30*time.Second)	if err != nil {		log.Fatal("conn error")	}	for {		conn.Write([]byte("user 1\n "))		time.Sleep(2 * time.Second)	}	conn.Close()}

server

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

下次目标

广播指定消息发送给客户端

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

你可能感兴趣的文章
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>