网站设计注意事项,零食网站策划书,中国电子商务门户,网站 规划方案网络编程中套接字#xff08;socket#xff09;介绍#xff08;Python示例#xff09;
网络编程就是同一计算机的进程间或者不同的联网计算机之间的通信#xff08;交换数据#xff09;。 那么#xff0c;这两台计算机之间用什么传输数据呢#xff1f;首先你肯定先需要…网络编程中套接字socket介绍Python示例
网络编程就是同一计算机的进程间或者不同的联网计算机之间的通信交换数据。 那么这两台计算机之间用什么传输数据呢首先你肯定先需要物理连接嘛。 在此基础上只需要考虑如何编写数据传输程序。 套接字是一种抽象的概念它表示一个端点用于在网络中传输数据。套接字可以用于实现各种网络协议如 TCP/IP、UDP 等。 在套接字中有两个主要的概念 服务器套接字server socket用于接收来自客户端的连接请求并建立与客户端的连接。服务器套接字通常在一个特定的端口上等待客户端的连接。 客户端套接字client socket用于向服务器发送连接请求并与服务器建立连接。客户端套接字通常在随机选择的端口上发起连接。 套接字通过使用 IP 地址和端口号来唯一标识其所在的计算机和端点。在网络编程中程序员通常使用套接字来编写服务器和客户端程序以实现数据的传输和通信。套接字在计算机网络、Internet 编程等领域中有着广泛的应用。 看似很麻烦但实际上这点不用愁因为和开发语言与操作系统已经提供了socket。即使对网络数据传输的原理不太熟悉我们也能通过 socket 来编程。
【Python之socket 官方文档 https://docs.python.org/zh-cn/3/library/socket.html 】 服务器端Python源码文件
import socket# 创建套接字
server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定地址和端口
server_address (localhost, 8888)
server_socket.bind(server_address)# 监听连接
server_socket.listen(5)print(等待客户端连接...)while True:# 接受连接client_socket, client_address server_socket.accept()print(接受来自 {} 的连接.format(client_address))try:# 发送数据message 欢迎访问服务器client_socket.sendall(message.encode(utf8))# 接收数据data client_socket.recv(1024).decode(utf-8)print(收到来自客户端的数据, data)finally:# 关闭连接client_socket.close()
客户端Python源码文件
import socket# 创建套接字
client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接服务器
server_address (localhost, 8888)
client_socket.connect(server_address)try:# 接收数据data client_socket.recv(1024)print(收到来自服务器的数据, data.decode(utf8))# 发送数据message 这是客户端发送的数据client_socket.sendall(message.encode(utf8))finally:# 关闭套接字client_socket.close()特别提示在运行客户端代码之前请确保服务器端代码已运行并且已经监听连接。不要再在一个python的IDLE运行服务器端代码和客户端代码否则会出现出现如下错误 ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝无法连接。
如何正确运行
应打开一个IDLE运行服务器代码。 再打开一个IDLE运行客户端代码。 这样才是运行两个进程进程间进行通信。 另外防火墙的防护也可能造成上述错误。