go语言实现 tcp客户端/服务端
2018-02-12 14:08
926 查看
/ server.go /
package main
import (
"bufio"
"fmt"
"net"
"time"
)
func main() {
var tcpAddr *net.TCPAddr
}
func tcpPipe(conn *net.TCPConn) {
ipStr := conn.RemoteAddr().String()
defer func() {
fmt.Println("disconnected :" + ipStr)
conn.Close()
}()
reader := bufio.NewReader(conn)
}
/client.go /
package main
import (
"bufio"
"fmt"
"net"
"time"
)
var quitSemaphore chan bool
func main() {
var tcpAddr *net.TCPAddr
tcpAddr, _ = net.ResolveTCPAddr("tcp", "127.0.0.1:9999")
}
func onMessageRecived(conn *net.TCPConn) {
reader := bufio.NewReader(conn)
for {
msg, err := reader.ReadString('\n')
fmt.Println(msg)
if err != nil {
quitSemaphore <- true
break
}
time.Sleep(time.Second)
b := []byte(msg)
conn.Write(b)
}
}
package main
import (
"bufio"
"fmt"
"net"
"time"
)
func main() {
var tcpAddr *net.TCPAddr
tcpAddr, _ = net.ResolveTCPAddr("tcp", "127.0.0.1:9999") tcpListener, _ := net.ListenTCP("tcp", tcpAddr) defer tcpListener.Close() for { tcpConn, err := tcpListener.AcceptTCP() if err != nil { continue } fmt.Println("A client connected : " + tcpConn.RemoteAddr().String()) go tcpPipe(tcpConn) }
}
func tcpPipe(conn *net.TCPConn) {
ipStr := conn.RemoteAddr().String()
defer func() {
fmt.Println("disconnected :" + ipStr)
conn.Close()
}()
reader := bufio.NewReader(conn)
for { message, err := reader.ReadString('\n') if err != nil { return } fmt.Println(string(message)) msg := time.Now().String() + "\n" b := []byte(msg) conn.Write(b) }
}
/client.go /
package main
import (
"bufio"
"fmt"
"net"
"time"
)
var quitSemaphore chan bool
func main() {
var tcpAddr *net.TCPAddr
tcpAddr, _ = net.ResolveTCPAddr("tcp", "127.0.0.1:9999")
conn, _ := net.DialTCP("tcp", nil, tcpAddr) defer conn.Close() fmt.Println("connected!") go onMessageRecived(conn) b := []byte("time\n") conn.Write(b) <-quitSemaphore
}
func onMessageRecived(conn *net.TCPConn) {
reader := bufio.NewReader(conn)
for {
msg, err := reader.ReadString('\n')
fmt.Println(msg)
if err != nil {
quitSemaphore <- true
break
}
time.Sleep(time.Second)
b := []byte(msg)
conn.Write(b)
}
}
相关文章推荐
- Go语言服务器开发之简易TCP客户端与服务端实现方法
- go --socket通讯(TCP服务端与客户端的实现)
- go语言实现udp客户端/服务端
- Go实战--实现一个简单的tcp服务端和客户端(The way to go)
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- python---TCP UDP IPv4 IPv6 客户端和服务端的实现
- 安卓实现tcp连接(安卓作为客户端,电脑作为服务端)
- PHP编程实现的TCP服务端和客户端功能示例
- 用 C 语言实现的 服务端 和客户端 可以研究一下 udp广播模式
- go语言实现简易ftp客户端
- C语言实现服务端和客户端进行TCP通信实例
- linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现
- 利用Tcp和socket实现的客户端与服务端的简单通信
- TCP实现ECHO程序(服务端同时处理多个客户端的响应)
- 客户端与服务端的TCP通信实现(Qt)
- 基于libuv实现tcp客户端和服务端(支持监听1000多个端口;打印客户端服务端socket;固定端口连接)
- TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
- Java简单实现TCP服务端和客户端通信
- Go语言中Socket通信之Tcp客户端
- [通信] C# TCP实现多个客户端与服务端 数据 与 文件的传输