千鋒扣丁學堂Python培訓之詳解實現
- 2020 年 1 月 6 日
- 筆記
今天千鋒扣丁學堂Python培訓老師給大家分享一篇關於Python兩台電腦實現TCP通訊的方法示例,文中通過示例程式碼介紹的非常詳細,首先比如為了實現Nao機器人與電腦端的TCP通訊,於是研究了一下Python實現TCP通訊,在網上也看到了很多例子,但大多都是在一台機器上驗證。在兩台機器上使用,出了一些小故障。
注意:若兩台電腦通訊出了問題,若能ping通!大部分是防火牆的問題。一開始A做伺服器,B做客戶端能實現;B做伺服器,A做客戶端,A就不能連接到B。我換了一台電腦A就能實現通訊了。應該是A的防火牆需要設置。但是A的防火牆全關了也不能實現。
首先是伺服器端程式碼:
-- encoding: utf-8 --
import socket
IP = "192.168.1.153" #伺服器端可以寫"localhost",可以為空字元串"",可以為本機IP地址
port = 40005 #埠號
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((IP,port))
s.listen(1)
print('listen at port :',port)
conn,addr = s.accept()
print('connected by',addr)
while True:
data = conn.recv(1024)
data = data.decode()#解碼
if not data:
break
print('recieved message:',data)
send = raw_input('return:')#python27要寫raw_input,python3.X可寫input
conn.sendall(send.encode())#再編碼發送
conn.close()
s.close()
客戶端程式碼:
-- encoding: utf-8 --
import socket
import sys
IP = '192.168.1.153' #填寫伺服器端的IP地址
port = 40005 #埠號必須一致
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((IP,port))
except Exception as e:
print('server not find or not open')
sys.exit()
while True:
trigger = raw_input("send:")
s.sendall(trigger.encode())
data = s.recv(1024)
data = data.decode()
print('recieved:',data)
if trigger.lower() == '1':#發送1結束連接
break
s.close()
以上就是關於千鋒扣丁學堂Python培訓之詳解實現TCP通訊方法示例的全部內容,希望對大家的學習有所幫助,最後想要了解更多關於Python和人工智慧方面內容的小夥伴,請關注扣丁學堂Python培訓官網、微信等平台,扣丁學堂IT職業在線學習教育平台為您提供權威的Python開發環境搭建影片,Python培訓後的前景無限,行業薪資和未來的發展會越來越好的,扣丁學堂老師精心推出的Python影片教程定能讓你快速掌握Python從入門到精通開發實戰技能。

