2015-12-14 71 views
-1

我有客戶端和服務器示例代碼。我可以從客戶端發送消息到服務器,我不能從服務器接收消息到客戶端。有什麼問題?Python套接字聊天問題

Server.py文件

#server 
import socket; 
import time; 

HOST = "localhost"; 
PORT = 5454; 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); 
s.bind((HOST,PORT)); 
while True: 

    print "Client says: " + s.recv(1024); 

    data = raw_input("Enter..... ") ; 
    s.sendto(data,(HOST, PORT)); 

    if data=="bye" or s.recv(1024)=="bye": 
     print "Exiting.................."; 
     time.sleep(1); 
     break; 

Client.py文件

#client 
import socket; 
import time; 

HOST = "localhost"; 
PORT = 5454; 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); 
s.connect((HOST,PORT)); 
while True: 

    data = raw_input("Enter..... ") 
    s.sendto(data,(HOST,PORT)) ; 

    print "Server says: " + s.recv(1024); 

    if data=="bye" or s.recv(1024)=="bye": 
     print "Exiting..........."; 
     time.sleep(1); 
     break; 

什麼是上面的代碼問題....

我第一次可以從客戶端發送到mesage服務器。無法將消息服務器發送給clint。必須等待更多的時間....但沒有迴應。幫助我

+0

@dsgdfg這是一個數據報協議,不需要接受。 – tdelaney

+0

謝謝,我將刪除它 – chinthaka

回答

1

您希望收到的數據量是您發送的數據量的兩倍。

print "Server says: " + s.recv(1024); 

    if data=="bye" or s.recv(1024)=="bye": 

調用接收每次都會等待套接字上的數據。先儲存收到的信息,然後處理該信息。

msg = s.recv(1024) 
    print "Server says: " + msg 
    if data=="bye" or msg=="bye": 
+0

我得到以下錯誤 – chinthaka

+1

msg = s.recv(1024); 錯誤:[Errno 10054]現有連接被遠程主機強制關閉 – chinthaka