socket通訊的ptython實現

2021-08-21 19:11:39 字數 1603 閱讀 4923

網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個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...