背景知识视频教程
开始7天Python编程 - 国外课栈viadean.com套接字可以配置为充当服务器并侦听传入的消息,或者作为客户端连接到其他应用程序。连接TCP / IP套接字的两端后,将进行双向通信。
回显服务器
该示例程序基于标准库文档中的示例程序,接收传入的消息并将它们回显给发送者。首先创建一个TCP / IP套接字。
import socket
import sys
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
然后,bind()用于将套接字与服务器地址相关联。在这种情况下,地址是localhost,引用当前服务器,端口号是10000。
# Bind the socket to the port
server_address = ('localhost', 10000)
print >>sys.stderr, 'starting up on %s port %s' % server_address
sock.bind(server_address)
调用listen()将套接字置于服务器模式,然后accept()等待传入连接。
# Listen for incoming connections
sock.listen(1)
while True:
# Wait for a connection
print >>sys.stderr, 'waiting for a connection'
connection, client_address = sock.accept()
accept()返回服务器与客户端之间的开放连接以及客户端的地址。 该连接实际上是另一个端口(由内核分配)上的另一个套接字。 使用recv()从连接中读取数据,并使用sendall()进行传输。
try:
print >>sys.stderr, 'connection from', client_address
# Receive the data in small chunks and retransmit it
while True:
data = connection.recv(16)
print >>sys.stderr, 'received "%s"' % data
if data:
print >>sys.stderr, 'sending data back to the client'
connection.sendall(data)
else:
print >>sys.stderr, 'no more data from', client_address
break
finally:
# Clean up the connection
connection.close()
与客户端的通信完成后,需要使用close()清除连接。此示例使用try:finally块来确保始终调用close(),即使发生错误也是如此。
回显客户端
简单客户端连接
选择侦听地址
多线程服务器
视频演示+文本内容
- 发送和接受数据
- 缓冲和流数据
- 使用套接字发送和接收Python对象
- 在Python中使用套接字创建聊天应用程序服务器
- 在Python中使用套接字创建聊天应用程序客户端