在Linux系统中,进程间的网络通信通常通过套接字(socket)来实现。套接字是一种通信端点,允许不同计算机上的进程进行双向数据传输。Linux中的套接字可以分为多种类型,包括流式套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)和原始套接字(SOCK_RAW)。
原因:
解决方法:
import socket
def start_server(host='0.0.0.0', port=12345):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(5)
print(f"Server listening on {host}:{port}")
while True:
client_socket, addr = server_socket.accept()
print(f"Connection from {addr}")
data = client_socket.recv(1024)
if data:
print(f"Received: {data.decode('utf-8')}")
client_socket.sendall(b"Message received")
client_socket.close()
if __name__ == "__main__":
start_server()
import socket
def send_message(host='127.0.0.1', port=12345, message="Hello, Server!"):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
client_socket.sendall(message.encode('utf-8'))
response = client_socket.recv(1024)
print(f"Server response: {response.decode('utf-8')}")
client_socket.close()
if __name__ == "__main__":
send_message()
通过这些基础概念、优势、类型、应用场景以及示例代码,您可以更好地理解和解决Linux进程间通过socket进行通信时遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云