Py学习  »  Python

同时发送/接收消息socket python

system123456 CaSper • 7 年前 • 2101 次点击  

我一直在研究一个简单的python socket聊天室,在那里客户机和服务器可以互相发送消息。我遇到的问题是服务器和客户端一次只能发送一条消息。我希望它能像其他聊天室一样工作,在那里我可以在发送消息时接收到消息,任何帮助都会有很大帮助

Serv.Py

import socket
import sys

s = socket.socket()
host = socket.gethostname()
print(" server will start on host : ", host)
port = 8080
s.bind((host,port))
name = input(str("Please enter your username: "))
print("")
print("Server is waiting for incoming connections")
print("")
s.listen(1)
conn, addr = s.accept()
print("Recieved connection")
print("")
s_name = conn.recv(1024)
s_name = s_name.decode()
print(s_name, "has joined the chat room")
conn.send(name.encode())

while 1:
    message = input(str("Please enter your message: "))
    conn.send(message.encode())
    print("Sent")
    print("")
    message = conn.recv(1024)
    message = message.decode()
    print(s_name, ":" ,message)
    print("")

客户机

import socket
import sys

s = socket.socket()
host = input(str("Please enter the hostname of the server : "))
port = 8080
s.connect((host,port))
name = input(str("Please enter your username : "))
print(" Connected to chat server")

s.send(name.encode())
s_name = s.recv(1024)
s_name = s_name.decode()
print("")
print(s_name, "has joined the chat room ")

while 1:
    message = s.recv(1024)
    message = message.decode()
    print(s_name, ":" ,message)
    print("")
    message = input(str("Please enter your message: "))
    message = message.encode()
    s.send(message)
    print("Sent")
    print("")
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44081
文章 [ 3 ]  |  最新文章 7 年前