Golang의 socket 일반적인 사용법
10845 단어 Go 언어 노트
클라이언트
작업 단계:
서버
작업 단계:
코드 인스턴스
클라이언트:package main
import(
"net"
"os"
"fmt"
"io/ioutil"
)
func main(){
if len(os.Args)!=2{
fmt.Println(os.Stderr,"Usage:%s host:port ",os.Args[0])
os.Exit(1)
}
service:=os.Args[1]
tcpAddr,err:=net.ResolveTCPAddr("tcp4",service)
conn,err:=net.DialTCP("tcp",nil,tcpAddr)
checkErr(err)
_,err=conn.Write([]byte("HEAD / HTTP/1.0\r
\r
"))
checkErr(err)
result,err:=ioutil.ReadAll(conn)
checkErr(err)
fmt.Println(string(result))
os.Exit(0)
}
func checkErr(err error){
if err!=nil{
fmt.Fprintf(os.Stderr,"Fatal error: %s
",err.Error())
os.Exit(1)
}
}
서버:package main
import(
"fmt"
"net"
"os"
"time"
)
func main(){
service:=":7777"
tcpAddr,err:=net.ResolveTCPAddr("tcp4",service)
checkErr(err)
listener,err:=net.ListenTCP("tcp",tcpAddr)
checkErr(err)
for{
conn,err:=listener.Accept()
if err!=nil{
continue;
}
go handleClient(conn)
}
}
func checkErr(err error){
if err!=nil{
fmt.Fprintf(os.Stderr,"Fatal error: %s",err.Error())
}
}
func handleClient(conn net.Conn){
defer conn.Close()
daytime:=time.Now().String()
conn.Write([]byte(daytime))
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Golang 오류 처리 메커니즘
오류 처리 시 공정의 일부분Golang 중 error 유형은 다음과 같습니다.
무릇 실현interface 방법의 구조는 모두 오류로 처리할 수 있다.따라서 함수에 오류가 발생할 수 있다면, 반환 값의 마지막에 오류를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
package main
import(
"net"
"os"
"fmt"
"io/ioutil"
)
func main(){
if len(os.Args)!=2{
fmt.Println(os.Stderr,"Usage:%s host:port ",os.Args[0])
os.Exit(1)
}
service:=os.Args[1]
tcpAddr,err:=net.ResolveTCPAddr("tcp4",service)
conn,err:=net.DialTCP("tcp",nil,tcpAddr)
checkErr(err)
_,err=conn.Write([]byte("HEAD / HTTP/1.0\r
\r
"))
checkErr(err)
result,err:=ioutil.ReadAll(conn)
checkErr(err)
fmt.Println(string(result))
os.Exit(0)
}
func checkErr(err error){
if err!=nil{
fmt.Fprintf(os.Stderr,"Fatal error: %s
",err.Error())
os.Exit(1)
}
}
package main
import(
"fmt"
"net"
"os"
"time"
)
func main(){
service:=":7777"
tcpAddr,err:=net.ResolveTCPAddr("tcp4",service)
checkErr(err)
listener,err:=net.ListenTCP("tcp",tcpAddr)
checkErr(err)
for{
conn,err:=listener.Accept()
if err!=nil{
continue;
}
go handleClient(conn)
}
}
func checkErr(err error){
if err!=nil{
fmt.Fprintf(os.Stderr,"Fatal error: %s",err.Error())
}
}
func handleClient(conn net.Conn){
defer conn.Close()
daytime:=time.Now().String()
conn.Write([]byte(daytime))
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Golang 오류 처리 메커니즘오류 처리 시 공정의 일부분Golang 중 error 유형은 다음과 같습니다. 무릇 실현interface 방법의 구조는 모두 오류로 처리할 수 있다.따라서 함수에 오류가 발생할 수 있다면, 반환 값의 마지막에 오류를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.