在編程的時候,想將客戶端代碼發送給服務端,服務端再發送一段代碼給另外一個客戶端
在改動客戶端的時候出現了上述錯誤,解決方案如下:
客戶端代碼:
import socket HOST = '192.168.1.101' PORT = 8803 ADDR = (HOST,PORT) BUFUSIZE = 1024 UDPSerSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 創建套接字 UDPSerSocket.bind(ADDR) while True: ''' data = raw_input('>') # 輸入參數 if not data: break print 'The sending data is ',data UDPSerSocket.sendto(data,ADDR) # 發送到特定的地址 ''' datarcv,addr = UDPSerSocket.recvfrom(BUFUSIZE) if not datarcv: break print 'The recive data is ',datarcv
服務端代碼:
# coding=utf-8 import socket import time HOST = '192.168.1.101' # 主機,因爲是本機所以是localhost,或者127.0.0.1也可以 BUFFSIZE = 1024 # 每次讀取數據的緩存區大小 PORT = 8802 # 端口,也就是客戶端要連接的端口 ADDR = (HOST, PORT) # 將主機地址和端口組成一個tuple形式的地址 UDPSerSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) UDPSerSocket.bind(ADDR) ADDR1 = (HOST, PORT+1) print('waiting for connect...') while True: data,addr = UDPSerSocket.recvfrom(BUFFSIZE) print 'Received',data,'from',addr,'in [%s]'%time.ctime() UDPSerSocket.sendto('[%s]:%s'%(time.ctime(),data),ADDR1)解決方案:就是在客戶端加一個
UDPSerSocket.bind(ADDR)由於變成了服務端,需要改變相應端口