通過socket實現不同兩台電腦上的程序通訊

2021-10-01 09:24:42 字數 1161 閱讀 8395

傳送

# send_info

sockin = socket.socket(socket.af_inet, socket.sock_dgram) # new socket

sockin.bind(('192.168.31.102', 23001)) # socket bind this computer ip and port

data_to_json = json.dumps(ir_sensor_unit_people)

sockin.sendto(data_to_json, ('192.168.31.100', 23001)) # sent text to other computer

接收

import socket 

sockin = socket.socket(socket.af_inet, socket.sock_dgram)

sockin.bind(('192.168.31.100', 23001))

msg, (addr, port) = sockin.recvfrom(100000)

ir_sensor_unit_people = json.loads(msg)

bind()to own address,connect()to remote address.

快取區不能太小:對於資料報類套介面,佇列中第乙個資料報中的資料被解包,但最多不超過緩衝區的大小。如果資料報大於緩衝區,那麼緩衝區中只有資料報的前面部分,其他的資料都丟失了,並且recvfrom()函式返回wsaemsgsize錯誤。

sock_stream

是有保障的(即能保證資料正確傳送到對方)面向連線的socket,多用於資料(如檔案)傳送。

sock_dgram

是無保障的面向訊息的socket,主要用於在網路上發廣播資訊。

sock_stream是基於tcp的,資料傳輸比較有保障。

sock_dgram是基於udp的,專門用於區域網,基於廣播

sock_stream 是資料流,一般是tcp/ip協議的程式設計

sock_dgram分是資料抱,是udp協議網路程式設計

資料通過json.dumps轉換為位元組,json.loads轉換為字典。

通過socket傳送

如何連線兩台電腦,實現兩台電腦的共享

第一種方法 第二種方法 1 先把兩台電腦設定在同一工作組內 例如是 workgroup 工作組。2 為2台機新增同樣的協議 連線狀態的屬性 網路 找到tcp ip協議,點安裝 協議 選最長的那個,ok。3 開啟控制面板 管理工具 本地安全策略 本地策略下的使用者權利指派,找到 拒絕從網路訪問這台計算...

兩台電腦通訊

兩台pc機網線直連通訊,對於初學者來說可能會很疑惑為什麼能通訊,或者為什麼不能通訊 其實主要是對主機通訊原理不了解 剛好前幾天遇到個網線直連的問題,順便就寫個blog,屬於掃盲帖,老司機可以直接跳過.我們知道一般主機都有三個引數 ip,子網掩碼,閘道器 平時應用層通訊的時候好像只用到了ip,其他兩個...

C Socket實現兩台電腦通訊(一)

1.ping 網路診斷工具 用於確定本地主機是否能與另一台主機成功交換 傳送與接收 資料報,再根據返回的資訊,就可以推斷tcp ip引數是否設定正確,以及執行是否正常 網路是否通暢等。2.ipconfig可用於顯示當前的tcp ip配置的設定值,通常是用來檢驗人工配置的tcp ip設定是否正確。3....