zoukankan      html  css  js  c++  java
  • go协程聊天室

    服务端:

    package main
    
    import (
        "fmt"
        "net"
    )
    
    func process(conn net.Conn){
        defer  conn.Close();
        for {
            fmt.Printf("服务器在等待客户端%s输入信息",conn.RemoteAddr().String());
            buf:=make([]byte,1024);
            n,err:=conn.Read(buf);//如果没有发信息一致等着
            if err !=nil {
                return;
                fmt.Println("error");
            }
            content:=string(buf[:n]);
            fmt.Print(content);
        }
    }
    
    func main(){
        fmt.Println("服务器启动....");
        listen,err:=net.Listen("tcp","0.0.0.0:8888");
        if err != nil {
            fmt.Println("listen err=",err);
        }
        defer listen.Close();
    
        for{
            fmt.Println("等待客户端来进行连接...");
            conn,err:= listen.Accept();
            if err != nil {
                fmt.Println("conn is error");
                ipaddr:=conn.RemoteAddr().String();
                fmt.Printf("accept() suc con =%v",ipaddr);
            }
            go process(conn);
        }
    }

    客户端:

    
    
    package main
    import (
    "bufio"
    "fmt"
    "net"
    "os"
    "strings"
    )
    func main(){
    conn,err:=net.Dial("tcp","127.0.0.1:8888");
    if err!= nil {
    fmt.Printf("client is error ");
    return;
    }
    //给客户端发送数据
    reader:=bufio.NewReader(os.Stdin);//代表标准输入
    for {
    content, err := reader.ReadString(' ');
    content = strings.Trim(content," ");
    if err != nil {
    fmt.Printf("read is error");
    }
    if content == "exit" {
    fmt.Println("客户端退出");
    break;
    }
    _,err = conn.Write([]byte(content+" "));
    if err != nil {
    fmt.Println("send is error");
    }
    }
    }
     
  • 相关阅读:
    计算机中丢失MSVCP110.dll
    应用程序无法正常启动0xc000007b
    查看80端口被占用
    重装系统后搭建php环境
    修改、设置root密码
    安装虚拟机时出现The Microsoft Runtime DLL
    linux网络配置
    Java拾遗
    哈希中的那些序问题
    笔记本电脑安装jupyterthemes
  • 原文地址:https://www.cnblogs.com/zh718594493/p/14192198.html
Copyright © 2011-2022 走看看