2015-12-14 161 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