2019-05-06 13:36:44 3551瀏覽
今天千鋒扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于Python兩臺(tái)電腦實(shí)現(xiàn)TCP通信的方法示例,文中通過示例代碼介紹的非常詳細(xì),首先比如為了實(shí)現(xiàn)Nao機(jī)器人與電腦端的TCP通信,于是研究了一下Python實(shí)現(xiàn)TCP通信,在網(wǎng)上也看到了很多例子,但大多都是在一臺(tái)機(jī)器上驗(yàn)證。在兩臺(tái)機(jī)器上使用,出了一些小故障。注意:若兩臺(tái)電腦通信出了問題,若能ping通!大部分是防火墻的問題。一開始A做服務(wù)器,B做客戶端能實(shí)現(xiàn);B做服務(wù)器,A做客戶端,A就不能連接到B。我換了一臺(tái)電腦A就能實(shí)現(xiàn)通信了。應(yīng)該是A的防火墻需要設(shè)置。但是A的防火墻全關(guān)了也不能實(shí)現(xiàn)。
# -*- encoding: utf-8 -*- import socket IP = "192.168.1.153" #服務(wù)器端可以寫"localhost",可以為空字符串"",可以為本機(jī)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())#再編碼發(fā)送 conn.close() s.close()
# -*- encoding: utf-8 -*- import socket import sys IP = '192.168.1.153' #填寫服務(wù)器端的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':#發(fā)送1結(jié)束連接 break s.close()
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】
查看更多關(guān)于"Python開發(fā)資訊"的相關(guān)文章>