go語言網路程式設計之tcp

2021-06-28 11:09:24 字數 1797 閱讀 3865

go語言網路程式設計之tcp

go語言網路程式設計需要匯入包 net如下

import

(

"fmt"

"net"

)

重要函式

func

listen(net,laddr

string)(listener,

error)

func 

accept()

(cconn,

errerror

)

func

read(b

byte)(n

int,

errerror

)

好,我們先寫乙個go伺服器端。

程式設計之前,先來了解下go語法,熟悉的跳過此段。

go的變數宣告比較怪,和c的宣告「相反」 

c語言的宣告是這樣的  int a;

go語言的宣告是這樣的 var a int;  如果無視var這個標誌,你會就是「相反」。

而且你宣告不使用會報錯,在go中。

go語言的多變數賦值, i:=1  等價於剛才說明的  var i int  = 1,下面的i,j賦值會自動匹配 i=1,j=1

i,j:=

1,1

i=i+j

恩,這個多變數賦值的這個東西,在函式返回值有多變數的用上。對,go語言函式可以返回多個值⊙﹏⊙

和lua語言相似。

go語言的函式實現如下所示,函式形參的宣告不用帶上var

func test(rstring, errstring

i,j:=test("1","2");

go語言的for和if

if和for 一樣,可以在條件之前執行乙個簡單的語句,用分號相隔,由這個語句定義的變數的作用域僅在 if 範圍之內。

如下所示

if y:=5;y==5

go語言defer的使用,**例子如下

file.open("c:/test.txt")

defer file.close()

作用:在函式退出時呼叫,這樣就有效避免了c語言中的記憶體洩露問題.

下面大家可以看看超級簡單的tcp伺服器端的**

package main

import (

"net"

"fmt"

)func main()

}
}

else

}

下面則是客戶端的**

conn,err:=net.dial("tcp",

"127.0.0.1:7777")

iferr==

nil

}
}
}

else

整合在一起就是以下**

ifos.args[1]==

"server"

}
}

else

}

else

}
}
}

else

}

go語言網路程式設計 TCP程式設計

一.tcp socket程式設計 go的tcp服務端流程分為三步 1 監聽埠 2 接收客戶端請求連線,返回conn 3 建立goroutine處理請求 乙個例項如下 tcp服務端 package main import fmt net bufio func process conn net.conn...

網路程式設計之TCP程式設計

tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...

網路程式設計之TCP程式設計案例

客戶端 public static void main string args fileinputstream.close outputstream.close catch unknownhostexception e catch ioexception e 伺服器 public static vo...