import socket
import json
ADDRESS = ('127.0.0.1', 8712)
client_type ='linxinfa'
def send_data(client, cmd, **kv):
global client_type
jd = {}
jd['COMMAND'] = cmd
jd['client_type'] = client_type
jd['data'] = kv
jsonstr = json.dumps(jd)
print('send: ' + jsonstr)
client.sendall(jsonstr.encode('utf8'))
def input_client_type():
return input("注册客户端,请输入名字 :")
if '__main__' == __name__:
client_type = input_client_type()
client = socket.socket()
client.connect(ADDRESS)
print(client.recv(1024).decode(encoding='utf8'))
send_data(client, 'CONNECT')
while True:
a=input("请输入要发送的信息:")
send_data(client, 'SEND_DATA', data=a)
server.py代码import socket # 导入 socket 模块from threading import Threadimport timeimport jsonADDRESS = ('127.0.0.1', 8712) # 绑定地址 g_socket_server = None # 负责监听的socket g_conn_pool = {} # 连接池...
一、socket()里的四个参数
sk = socket(family = AF_INET,type = SOCK_STREAM,proto = 0,fileno = None)
二、socket模块的其他方法
1、...
# 处理客户端连接
request = client_socket.recv(1024)
print(f"Received from client: {request.decode('utf-8')}")
# 发送响应
response = "Hello from server"
client_socket.send(response.encode('utf-8'))
# 关闭连接
client_socket.close()
if __name__ == '__main__':
# 创建一个TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定到本地端口
server_socket.bind(('127.0.0.1', 8888))
# 监听端口
server_socket.listen(5)
print("Listening on port 8888...")
# 循环等待连接
while True:
client_socket, address = server_socket.accept()
print(f"Accepted connection from {address[0]}:{address[1]}")
# 创建一个新的线程来处理连接
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
这个程序创建一个TCP socket并绑定到本地端口8888。然后,它进入一个循环,等待客户端连接。当有客户端连接时,程序会创建一个新的线程来处理连接,这样服务器就可以同时处理多个客户端请求。在这个例子中,handle_client() 函数用于处理连接,它接收客户端发送的消息并发送一个简单的响应,然后关闭连接。