socket起源於unix,而unix基本哲學之一就是「一切皆檔案」,都可以用「開啟open –> 讀寫write/read –> 關閉close」模式來操作。socket就是該模式的乙個實現,網路的socket資料傳輸是一種特殊的i/o,socket也是一種檔案描述符。socket也具有乙個類似於開啟檔案的函式呼叫:socket(),該函式返回乙個整型的socket描述符,隨後的連線建立、資料傳輸等操作都是通過該socket實現的。
常用的socket型別有兩種:流式socket(sock_stream)和資料報式socket(sock_dgram)。流式是一種面向連線的socket,針對於面向連線的tcp服務應用;資料報式socket是一種無連線的socket,對應於無連線的udp服務應用。
package main
import (
"fmt"
"log"
"net"
"strings"
)func dealconn(conn net.conn)
//切片擷取,只擷取有效資料
result := buf[:n]
fmt.printf("接收到資料來自[%s]==>[%d]:%s\n", ipaddr, n, string(result))
if "exit" == string(result)
//把接收到的資料轉換為大寫,再給客戶端傳送
conn.write(byte(strings.toupper(string(result))))
}}func main()
defer listenner.close()
for
go dealconn(conn)}}
package main
import (
"fmt"
"log"
"net"
)func main()
defer conn.close() //關閉
buf := make(byte, 1024) //緩衝區
for
//切片擷取,只擷取有效資料
result := buf[:n]
fmt.printf("接收到資料[%d]:%s\n", n, string(result))}}
socket程式設計基礎
對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...
socket程式設計基礎
對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...
Linux程式設計基礎 Socket程式設計
linux下的socket程式設計大體上包括tcp socket udp socket即raw socket這三種,其中tcp和udp方式的socket程式設計用於編寫應用層的socket程式,是我們用得比較多的,而raw socket則用得相對較少,不在本文介紹範圍之列。tcp socket 基於...