server1:
package main
為和布克賽爾蒙古等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及和布克賽爾蒙古網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、做網(wǎng)站、和布克賽爾蒙古網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
import (
"fmt"
"net"
)
func main() {
l, err := net.Listen("tcp", "127.0.0.1:9876")
if err != nil {
fmt.Println(err)
}
fmt.Println("
client1:
package main
import (
"fmt"
"net"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:9876")
if err != nil {
fmt.Println(err)
}
defer conn.Close()
conn.Write([]byte("are you ready"))
buf := make([]byte, 4096)
n, err := conn.Read(buf)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(buf[:n]))
}
sever2:
package main
import (
"fmt"
"io"
"net"
"runtime"
"strings"
)
func process(conn net.Conn) {
// io.Copy(conn, conn)
buf := make([]byte, 4096)
for {
n, err := conn.Read(buf)
if err != nil {
if err == io.EOF {
fmt.Println("客戶端斷開連接")
runtime.Goexit()
} else {
fmt.Println(err)
runtime.Goexit()
}
//break
}
fmt.Println("接收到消息:", string(buf[:n]))
conn.Write([]byte(strings.ToUpper(string(buf[:n]))))
//fmt.Println(strings.ToUpper(string(buf[:n])))
}
}
func main() {
l, err := net.Listen("tcp", "127.0.0.1:9876")
if err != nil {
fmt.Println(err)
}
defer l.Close()
for {
conn, err := l.Accept()
if err != nil {
fmt.Println(err)
continue
}
defer conn.Close()
fmt.Println(conn.RemoteAddr())
go process(conn)
}
}
client2:
package main
import (
"bufio"
"fmt"
"net"
"os"
"strings"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:9876")
if err != nil {
fmt.Println(err)
}
defer conn.Close()
for {
//strs :=""
// fmt.Scanln(&strs) 空格有問題
//strs := make([]byte, 4096)
//n, err := os.Stdin.Read(strs)
fmt.Println("請輸入要發(fā)送的消息:")
str, err := bufio.NewReader(os.Stdin).ReadString('\n')
if err != nil {
fmt.Println(err)
}
str = strings.TrimSpace(str)
//fmt.Println("發(fā)送前", , "展示")
//fmt.Println("a", str, "b")
if str == "Q" {
fmt.Println("接收到退出命令,退出客戶端")
break
}
conn.Write([]byte(str))
buf := make([]byte, 4096)
n, err := conn.Read(buf)
if err != nil {
fmt.Println(err)
break
}
defer conn.Close()
fmt.Println("接收到消息:", string(buf[:n]))
}
}
網(wǎng)站題目:gotcpc/sserverclient學習筆記
文章轉載:http://bm7419.com/article2/jdieoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、、做網(wǎng)站、網(wǎng)站收錄、網(wǎng)頁設計公司、服務器托管
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)