網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket伺服器端的基本流程:所謂socket通常也稱作「套接字」,用於描述ip位址和埠,是乙個通訊鏈的控制代碼,應用程式通常通過「套接字」向網路發出請求或應答網路請求
socket起源於uinx,而unix/linux基本哲學之一就是「一切皆檔案」,都可以用「開啟open–>讀寫write/read–>關閉close」模式來操作,socket就是該模式的乙個實現,socket即是一種特殊的檔案,一些socket函式就是對其進行的操作(讀/寫 io,開啟,關閉)
socket的英文原義是「孔」或「插座」。作為bsd unix的程序通訊機制,取後一種意思。通常也稱作」套接字」,用於描述ip位址和埠,是乙個通訊鏈的控制代碼,可以用來實現不同虛擬機器或不同計算機之間的通訊。在internet上的主機一般執行了多個服務軟體,同時提供幾種服務。每種服務都開啟乙個socket,並繫結到乙個埠上,不同的埠對應於不同的服務。socket正如其英文原義那樣,像乙個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有乙個編號,有的插座提供220伏交流電,有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務
import socket
# 建立乙個socket物件
client = socket.socket()
# 建立連線
ip_port = ('127.0.0.1',9998)
client.connect(ip_port)
while true:
# 獲取資料
data = client.recv(1024) ##1024bit(即乙個位元組)
print data
# 傳送資料
inp = raw_input('clent:')
client.send(inp)
if inp == 'exit':
break
客戶端的基本流程:import socket
# 1.建立socket物件
sk = socket.socket()
# 2.繫結埠和ip
ip_port = ('127.0.0.1',9998)
sk.bind(ip_port)
# 3.最大連線數
sk.listen(5)
while true:
# 獲取客戶端的ip和埠號
conn,address = sk.accept()
#conn = result[0]
#address = result[1]
#print result
#print type(result)
conn.send('hello')
flag = true
while flag:
data = conn.recv(1024)
print data
if data == 'exit':
flag = false
conn.send('sb')
conn.close()
簡易的Socket通訊
非常簡單的socket通訊 上次使用過的,還花了一些時間,保留以適用於偶而需要通訊的情況救急用。以下的四段 完成了使用簡單的tcp udp協議來進行通訊的全部所需!1 include string 2 include stdlib.h 3 include stdio.h 4 include coni...
socket 的通訊過程
1.建立套接字 linux在利用socket 系統呼叫建立新的套接字時,需要傳遞套接字的位址族識別符號 套接字型別以及協議,其函式定義於net socket.c中 asmlinkage long sys socket int family,int type,int protocol 實際上,套接字對...
socket的通訊原理
一 socket的通訊原理 伺服器端的步驟如下。1 建立伺服器端的socket,開始偵聽整個網路中的連線請求。2 當檢測到來自客戶端的連線請求時,向客戶端傳送收到連線請求的資訊,並建立與客戶端之間的連線。3 當完成通訊後,伺服器關閉與客戶端的socket連線。客戶端的步驟如下。1 建立客戶端的soc...