![](/img/trans.png)
[英]Transferring image files from sever to client using python socket programming
[英]Python Simple Sever and Client script (Socket programming)
我的目標是每次客戶端將數據發送到服務器時,服務器都會顯示它。 但是當前,當客戶端發送數據時,服務器捕獲數據並僅在第一次顯示它。 是什么原因引起的? 順便說一句,這是我第一次進行網絡編程,因此請簡單回答。
服務器腳本
import socket
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bine(("",5001))
server_socket.listen(5)
print "TCP Server Waiting for incoming client connection on port 5001..."
while True:
client_socket, address =server_socket.accept()
print "Connection from ", address
data = client_socket.recv(512)
print "RECIEVED:" , data
客戶端腳本
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('169.254.0.1', 5001))
data=''
while data!='quit':
data = raw_input ( "SEND :" )
client_socket.send(data)
您的服務器代碼僅接收一次,然后接受另一個客戶端。 您應該循環播放直到客戶端斷開連接。 (斷開連接時, recv()
返回空字符串)
while True:
client_socket, address = server_socket.accept()
print "Connection from ", address
while 1:
data = client_socket.recv(512)
if not data:
break
print "RECIEVED:" , data
順便說一句,您的服務器代碼(和我的代碼)一次只處理一個客戶端。
while True:
client_socket, address =server_socket.accept()
print "Connection from ", address
data = client_socket.recv(512)
print "RECIEVED:" , data
應該是:
client_socket, address =server_socket.accept()
print "Connection from ", address
while True:
data = client_socket.recv(512)
print "RECIEVED:" , data
server_socket.accept()
將無限期等待,直到連接了新客戶端。 實際上,您的循環就像:“接受客戶端並接收他發送的數據一次”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.