TCP Socket 客户端和服务端示例分享
本文是关于如何使用 Python 编写 TCP Socket 客户端和服务端的攻略。TCP (Transmission Control Protocol) 是一种传输层协议,它保证数据能够在两个应用进程之间可靠的传输。
客户端示例
以下是 Python 编写的简单 TCP Socket 客户端示例:
import socket
HOST = '127.0.0.1' # 服务器的 IP 地址
PORT = 65432 # 服务器监听的端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
这个示例程序使用了 Python 内置的 socket
模块。首先创建了一个 TCP socket 对象,在 connect
方法里面指定了服务器的 IP 地址和端口号。然后使用 sendall
方法发送一个字符串给服务器。接着调用 recv
方法等待服务器返回数据(最多接收 1024 字节)。最后将服务器返回的数据打印出来。
服务端示例
以下是 Python 编写的简单 TCP Socket 服务器示例:
import socket
HOST = '127.0.0.1' # 监听的 IP 地址
PORT = 65432 # 监听的端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
这个示例程序也使用了 Python 内置的 socket
模块。首先创建了一个 TCP socket 对象,并使用 bind
方法将它和指定的 IP 地址与监听的端口号绑定。接着调用 listen
方法等待客户端的连接,一旦有客户端连接进来,就使用 accept
方法建立连接。在建立连接后,服务端就可以收到客户端发送过来的数据。服务端接收客户端发送的数据使用 recv
方法,如果客户端没有发送数据或者数据已经全部接收完了,则会退出接收循环。最后使用 sendall
方法将客户端发送的全部数据回传给客户端。
总结
本文通过两个示例代码,演示了如何使用 Python 编写 TCP Socket 客户端和服务端程序。通常情况下,TCP Socket 的应用场景有很多,比如 Web 服务器、文件传输等。只要了解了 TCP Socket 编程的基本原理和方法,就可以自己开发出更加复杂的应用程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tcp socket客户端和服务端示例分享 - Python技术站