jyqi / kendynet-go

kendynet-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go语言编写的网络库

	package main

	import(
		"net"
		tcpsession "kendynet-go/tcpsession"
		packet "kendynet-go/packet"
		"fmt"
	)

	func main(){
		service := ":8010"
		tcpAddr,err := net.ResolveTCPAddr("tcp4", service)
		if err != nil{
			fmt.Printf("ResolveTCPAddr")
		}
		listener, err := net.ListenTCP("tcp", tcpAddr)
		if err != nil{
			fmt.Printf("ListenTCP")
		}
		for {
			conn, err := listener.Accept()
			if err != nil {
				continue
			}
			session := tcpsession.NewTcpSession(conn)
			fmt.Printf("a client comming\n")
			go tcpsession.ProcessSession(session,packet.NewRawDecoder(),
			   func (session *tcpsession.Tcpsession,rpk packet.Packet,errno error){	
				if rpk == nil{
					fmt.Printf("%s\n",errno)
					session.Close()
					return
				}
				session.Send(rpk)
			   })
		}
	}

About

kendynet-go


Languages

Language:Go 99.8%Language:Makefile 0.2%