0
点赞
收藏
分享

微信扫一扫

GO基础(string相关)

犹大之窗 2024-11-04 阅读 5

客户端代码

package main
import (
	"fmt"
	"net"
	"os"
	"bufio"
)

func main(){
	fmt.Println("客户端启动……")
	conn,err:=net.Dial("tcp","127.0.0.1:8888")
	if err!=nil{
		fmt.Println("客户端连接服务器失败,错误信息:",err)
		return
	}
	fmt.Println("客户端连接服务器成功,连接信息:",conn)

	// 客户端发送信息
	reader := bufio.NewReader(os.Stdin)
	for{
		str,err := reader.ReadString('\n')
		if err != nil {
			fmt.Println("客户端发送信息失败,错误信息:",err)
			return
		}
		n,err := conn.Write([]byte(str))
		if err != nil {
			fmt.Println("客户端发送信息失败,错误信息:",err)
			return
		}
		fmt.Println("客户端发送信息成功,发送的字节数:",n)
	}

	

}

服务器代码

package main
import (
	"fmt"
	"net"
	
)
func process(conn net.Conn){
	defer conn.Close()
	for{
		buf:=make([]byte,1024)
		n,err:=conn.Read(buf)
		if err!=nil{
			fmt.Println("客户端断开连接,错误信息:",err)
			return
		}
		fmt.Println("服务器收到信息:",string(buf[:n]))
		
	}
}
func main(){
	fmt.Println("服务器启动……")
	lisnet,err:=net.Listen("tcp","127.0.0.1:8888")
	if err!=nil{
		fmt.Println("服务器监听失败,错误信息:",err)
		return
	}
	fmt.Println("服务器监听成功,监听信息:",lisnet)
	for{
		conn,err:=lisnet.Accept()
		if err!=nil{
			fmt.Println("服务器接收客户端连接失败,错误信息:",err)
			continue
		}
		fmt.Printf("服务器接收客户端连接成功,连接信息:%v,接收到的客户端信息:%v\n",conn,conn.RemoteAddr().String())

		// 接受信息
		go process(conn)
	}
	
	

}

客户端运行效果

客户端启动……
客户端连接服务器成功,连接信息: &{{0xc00009e288}}

我看新闻说有人在饮水机里下毒
客户端发送信息成功,发送的字节数: 44
毒死了成绩好的学生
客户端发送信息成功,发送的字节数: 29
妈你放心,我成绩差,没事的
客户端发送信息成功,发送的字节数: 41
我是在警醒你千万别给同学下毒
客户端发送信息成功,发送的字节数: 44
[][][]
客户端发送信息成功,发送的字节数: 17

服务器运行效果

服务器启动……
服务器监听成功,监听信息: &{0xc000072288 {<nil> 0 {false 0 0 0} 0}}
服务器接收客户端连接成功,连接信息:&{{0xc000072508}},接收到的客户端信息:127.0.0.1:59990


服务器收到信息: 我看新闻说有人在饮水机里下毒

服务器收到信息: 毒死了成绩好的学生

服务器收到信息: 妈你放心,我成绩差,没事的

服务器收到信息: 我是在警醒你千万别给同学下毒

服务器收到信息: [][][]

举报

相关推荐

0 条评论