Socket 是什么
Socket 是一种在计算机网络中用于实现进程间通信的一种机制。它是网络编程中的重要概念,通过它可以在不同的计算机之间进行数据传输和通信。Socket 可以用于实现各种网络应用,包括客户端-服务器模型、P2P 应用等。基本上,Socket 允许不同计算机上的进程通过网络进行通信,从而实现数据交换和协作。
更多详细知识点可以看
https://segmentfault.com/a/1190000041413541#item-3
添加链接描述
服务端代码
import socket
import sys
import threading
def send_msg(client_socket):
#发送数据
while True:
message = input()
if message == 'close':
client_socket.close()
sys.exit(0)
else:
client_socket.sendall(message.encode())
print('服务端:', message)
def rece_msg(client_socket):
# 接收响应
while True:
data = client_socket.recv(1024)
print('客户端:', data.decode())
def server_client():
# 创建一个TCP/IP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务地址
server_addr = ('localhost', 8888)
# 绑定套接字到端口
client_socket.bind(server_addr)
client_socket.listen(3)
# 等待客户端连接
clientsocket, addr = client_socket.accept()
return clientsocket
if __name__ == '__main__':
client_socket = server_client()
# 发送消息
send_msg = threading.Thread(target=send_msg, args=(client_socket,))
send_msg.start()
#接收消息
rece_msg = threading.Thread(target=rece_msg, args=(client_socket,))
rece_msg.start()
客户端代码
import socket
import sys
import threading
def send_msg(client_socket):
#发送数据
while True:
message = input()
if message == 'close':
client_socket.close()
sys.exit(0)
else:
client_socket.sendall(message.encode())
print('客户端:', message)
def rece_msg(client_socket):
# 接收响应
while True:
data = client_socket.recv(1024)
print('服务端:', data.decode())
if __name__ == '__main__':
# 创建一个TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
server_addr = ('localhost', 8888)
client_socket.connect(server_addr)
# 发送消息
send_msg = threading.Thread(target=send_msg, args=(client_socket,))
send_msg.start()
# 接收消息
rece_msg = threading.Thread(target=rece_msg, args=(client_socket,))
rece_msg.start()