socket實現簡單兩主機間互動

2021-08-18 03:12:03 字數 1455 閱讀 9875

兩段簡單的python**,實現簡單的主機互動。在同一主機上執行,客戶端的host需修改為主機名

在兩個主機上需要在能ping通的情況下才能正常工作(或者連在乙個路由上)

(摘自python核心程式設計)

#coding=utf-8

## server.py伺服器端

from socket import *

from time import ctime

host = 」#伺服器端不需要主機端

port = 21567

#與客戶端一樣的埠號

bufsiz = 1024

addr = (host, port)

tcpsersock = socket(af_inet, sock_stream)#建立tcp/ip套接字

tcpsersock.bind(addr)

tcpsersock.listen(5)#限制5個監聽

while true:

print 『waiting for connection…』

tcpclisock, addr = tcpsersock.accept()#接收客戶端的鏈結請求

print 『…connected from:』 , addr

while true:

data = tcpclisock.recv(bufsiz)#接收客戶端的資料

ifnot data:

break

tcpclisock.send(『[%s] %s』 % (ctime(),data))#向客端返回資料

tcpsersock.close()

#coding=utf-8

## client.py客戶端

from socket import *

host =』oliver-t5-skylake』 #需要訪問的ip位址

port=21567

#埠號,和伺服器端一樣

bufsiz = 1024

#緩衝區大小限制

addr = (host, port) #主機名和埠放入addr元組中

tcpclisock = socket(af_inet, sock_stream)#建立tcp/ip套接字,相當於通訊端點

tcpclisock.connect(addr) #用主機名和埠號進行鏈結

while true: #死迴圈輸入

data = raw_input(『> 『) #輸入字元

ifnot data: #沒有字元退出輸入迴圈

break

tcpclisock.send(data) #通過套接字傳送data

data = tcpclisock.recv(bufsiz)#接受伺服器端返回資料

ifnot data:

break

print data

tcpclisock.close() #關閉套接字結

linux簡單程序間socket通訊

socket多用於網路通訊,但將服務位址設為本機位址之後,即可實現本機程序間socket通訊,利用socket可以在程序間方便地傳輸資料。在linux平台上還支援af unix通訊,而不必設定本機位址,這種socket通訊型別在windows平台上並不適用。下面模擬三個程序間利用socket通訊,s...

Zorka和zico實現不同主機之間的互動

之前參考下面的兩篇博文進行了zorka以及其collector端zico的配置。本文主要談談如實在不同的主機上實現zorka和zico的互動。第一步 修改zorka配置檔案,需要在zorka.properties中進行如下修改 tracer.net yes tracer.net.addr 192.1...

php簡單實現socket通訊

socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用 socket 來做乙個 api介面出來,也可以使用 socket 來實現兩個程式之間的通訊,我們來研究一下在 php開發 中如何實現socket通訊。由於socket服務端的 要監聽埠,等待接收請求,所以 php在做 soc...