【问题抛出】: 之前已知有一个困惑,那就是网站,以及一些软件是如何做到实时控制的,现在有了一点想法,应该是通过开启一个新的线程专门与其他进程交流。
【示例】:在客户端运行时远程添加输出
【具体描述】:
1,服务端:循环打字,并开启一个新的线程从客户端接受字符串加入打字列表
2,客户端:向服务端发送字符串
3,通信方式:socket
【代码】:
【服务端】
from socket import *
import _thread
import time
list = ["nihao"]
#线程函数,从客户端获取字符串
def receive_input(socket : socket):
server_socket, client_addr = socket.accept()
print(client_addr)
while(True):
text = server_socket.recv(1024)
list.append(text.decode("gbk"))
#使用有连接的socket
socket = socket(AF_INET, SOCK_STREAM)
address =("",5000)
socket.bind(address)
socket.listen(10)
#开启线程,注意第一个参数是函数的名字,不带括号;
#第二个参数是函数的参数,要求是元组,元组内只有一个参数的话后面要加逗号","
_thread.start_new_thread(receive_input,(socket,))
while(True):
print(list)
print("---------------------------------------")
time.sleep(2)
【客户端】
from socket import *
socket = socket(AF_INET, SOCK_STREAM)
server_ip = "127.0.0.1"
server_port = 5000
socket.connect((server_ip, server_port))
while(True):
send_data = input("--输入--:")
socket.send(send_data.encode("gbk"))
标签:socket,想法,server,线程,send,进程,import,交流,客户端
From: https://www.cnblogs.com/wyh-s/p/16735480.html