Socket 是网络通信中的一个端点,用于在应用程序之间传输数据。它允许不同计算机上的进程通过网络进行通信。Socket 通信基于 TCP/IP 或 UDP 协议。
import socket
def start_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345))
server_socket.listen(5)
print("Server listening on port 12345")
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 start_client():
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('服务器公网IP', 12345))
client_socket.sendall(b"Hello, Server!")
response = client_socket.recv(1024)
print(f"Server response: {response.decode('utf-8')}")
client_socket.close()
if __name__ == "__main__":
start_client()
原因:可能是防火墙阻止了连接请求,或者服务器端没有正确绑定IP地址。
解决方法:
0.0.0.0
表示所有可用的网络接口)。原因:可能是网络不稳定或数据编码问题。
解决方法:
原因:未正确关闭Socket连接,导致系统资源耗尽。
解决方法:
close()
方法关闭Socket连接。with
语句)自动管理资源。通过以上步骤和方法,可以在腾讯云ECS上成功实现Socket通信,并有效解决常见的问题。
领取专属 10元无门槛券
手把手带您无忧上云