千鋒扣丁學堂Python培訓之詳解實現

今天千鋒扣丁學堂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從入門到精通開發實戰技能。

Tags: