码迷,mamicode.com
首页 > 编程语言 > 详细

go语言网络编程

时间:2019-03-13 10:43:25      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:return   sele   select   ade   sel   ddr   bee   main   []   

服务端

package main

import (
	"fmt"
	"log"
	"net"
)

func main()  {
	fmt.Println("server has been started ...")

	tcpAddr, err := net.ResolveTCPAddr("tcp", ":8080")
	if err != nil {
		log.Println(err)
	}

	tcpListener, err := net.ListenTCP("tcp", tcpAddr)
	if err != nil {
		log.Println(err)
	}

	ConnMap := make(map[string]*net.TCPConn)
	for {
		tcpConn, err := tcpListener.AcceptTCP()
		if err != nil {
			log.Println(err)
		}

		defer func() {
			_ = tcpConn.Close()
		}()

		ConnMap[tcpConn.RemoteAddr().String()] = tcpConn
		fmt.Println("client info: ", tcpConn.RemoteAddr().String())
	}
}

 客户端

package main

import (
	"bufio"
	"fmt"
	"log"
	"net"
	"os"
)

func main()  {
	tcpAddr, err := net.ResolveTCPAddr("tcp", ":8080")
	conn, err := net.DialTCP("tcp", nil, tcpAddr)
	if err != nil {
		log.Println(err)
	}

	defer func() {
		_ = conn.Close()
	}()

	ch := make(chan int)

	for {
		inputReader := bufio.NewReader(os.Stdin)
		input, err := inputReader.ReadString(‘\n‘)
		if err != nil {
			log.Println(err)
		}

		b := []byte(input)
		n, err := conn.Write(b)
		if err != nil {
			log.Println(err)
			continue
		}
		fmt.Printf("write %d bytes\n", n)

		select {
		case <- ch:
			fmt.Println("error")
			return
		default:
			//
		}
	}
}

 

go语言网络编程

标签:return   sele   select   ade   sel   ddr   bee   main   []   

原文地址:https://www.cnblogs.com/ycz0926/p/10521413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!