加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go语言-使用去程的客户端

发布时间:2020-12-16 19:02:25 所属栏目:大数据 来源:网络整理
导读:以下为客户端代码, 服务端请见吕志钊写的《Go语言-使用去程的Echo服务器》http://my.oschina.net/nalan/blog/75626 一样,废话不说了,直接上代码.里面注释应该很清楚了 /** * Created with IntelliJ IDEA. * User: liaojie * Date: 12-9-5 * Time: 下午2:42

以下为客户端代码,

服务端请见吕志钊写的《Go语言-使用去程的Echo服务器》http://my.oschina.net/nalan/blog/75626

一样,废话不说了,直接上代码.里面注释应该很清楚了

/**
 * Created with IntelliJ IDEA.
 * User: liaojie
 * Date: 12-9-5
 * Time: 下午2:42
 * To change this template use File | Settings | File Templates.
 */
package main

import (
	//"__PB__/GAME_PB_"
	//"code.google.com/p/goprotobuf/proto"
	"net"
	"fmt"
	"bufio"
	"os"
	//"flag"
	"log"
	"time"
)
var running bool;
var (
	host = "192.168.0.27";
	port = "12346";
	laddr = host + ":" + port;
)

func main() {
	//flag.Parse();
	running = true;

	log.Printf("Starting... ");
	conn,err := net.Dial("tcp",laddr)
	if err != nil { log.Printf("与服务器%s握手失败;n 错误:%s",host,err); os.Exit(1); }
	defer conn.Close();
	reader := bufio.NewReader(os.Stdin);
	name,_ := reader.ReadBytes('n');
	conn.Write(name[0:len(name)-1]);
	go client_receiver(conn);
	go client_sender(conn);
	for ;running; {
		time.Sleep(1*1e9);
	}
}

//客户端发送器
func client_sender(conn net.Conn){
	reader := bufio.NewReader(os.Stdin);
	for {
		fmt.Print("Server>")
		input,_ :=reader.ReadBytes('n')
		if string(input) =="/quitn"{
			conn.Write([]byte("/quitn"))
			running = false;
			break;
		}
		conn.Write(input[0:len(input)-1])
	}

}


//客户端接收器
func client_receiver(conn net.Conn){
	//无限循环
	for running {
		fmt.Println("===%s",readabc(conn));
		fmt.Print("You>");
	}
}

//读书连接
func readabc(conn net.Conn) string{
	buf := make([]byte,1024)
	_,err :=conn.Read(buf);
	if err != nil {
//		log.Printf("接收错误:%s",err);
//		defer conn.Close();
		log.Printf("警告!连接已断开: %s n",err);
		os.Exit(1);
	}
	return string(buf)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读