python sockes server-client试图创建一个循环来制作客户端服务器交易消息

时间:2018-06-16 14:04:04

标签: python sockets infinite-loop

早上好! 我希望有人可以帮助我! 所以我想做的是: 制作一个client.py和server.py并进行交易聊天 我做得很好,但后来我有了这个疯狂的想法..可能我会使用功能来进行recv和解码以及发送和编码。 现在我的问题是:如何在聊天循环中实现这一点? 有可能吗?

server.py

import socket, sys
from _thread import *  # NOT IMPORTANTE
host = "127.0.0.1"
port = 8000
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    serversocket.bind((host, port))  # NOT IMPORTANTE
except socket.error as e:
    print(str(e))
    sys.exit()

serversocket.listen(10)
print("Server online and listening")  # NOT IMPORTANTE

def send(conn):   #SEND FUNCTION
    msg = input("Enter message: \n")
    msgs = msg.encode("UTF-8")
    conn.send(msgs)

def rcv(conn):  #RECV FUNCTION
    msg = conn.recv()
    msgs = msg.decode("UTF-8")
    print(msgs)

def client_thread(conn):
    welcome = "Welcome to the server. Type something and hit enter \n"
    conn.send(welcome.encode("UTF-8"))
    while True: #THE LOOP OF CHAT? I think...
        <<<HOW DO I GO FROM HERE? >>>

        if not data:
            break









while 1:  #NOT IMPORTANT
    conn, addr = serversocket.accept()
    print("Connected with " + addr[0] + ":" + str(addr[1]))
    start_new_thread(client_thread, (conn, ))
serversocket.close()

client.py

#! /usr/bin/python3
import socket

def Main():

    clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    clientsocket.connect(('127.0.0.1', 8000))
    print("Connected")  #NOT IMPORTANT

    message = input("Enter msg \n")
    while message != "!q":  # IMPORTANT HERE
    #trying to send data.
        clientsocket.send((message.encode("UTF-8")))


    if message == "!q":
        print("Good bye")
        clientsocket.close()


if __name__ == "__main__": # NOT IMPORTANT
    Main()

所以我的逻辑就是这样,我“登录”(将客户端连接到服务器), 它应该发送给"Welcome to the server. Type something and hit enter \n",但不是。

0 个答案:

没有答案