Python中编写Socket服务器和客户端的基本步骤如下:
服务器端
1. 导入`socket`模块。
2. 创建一个`socket`对象,指定地址族(`AF_INET`)和套接字类型(`SOCK_STREAM`)。
3. 使用`bind`方法将`socket`绑定到指定的IP地址和端口号。
4. 使用`listen`方法设置监听队列的大小。
5. 使用`accept`方法等待客户端连接请求。
6. 当客户端连接后,进行数据通信。
7. 关闭与客户端的连接。
客户端
1. 导入`socket`模块。
2. 创建一个`socket`对象,指定地址族(`AF_INET`)和套接字类型(`SOCK_STREAM`)。
3. 使用`connect`方法连接到服务器。
4. 进行数据通信。
5. 关闭与服务器的连接。
示例代码
服务器端
import socket
def server():
host = '127.0.0.1'
port = 12345
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1)
print('等待连接...')
client_socket, addr = server_socket.accept()
print('连接已建立:', addr)
file_name = client_socket.recv(1024).decode()
print('接收文件:', file_name)
with open(file_name, 'wb') as file:
while True:
data = client_socket.recv(1024)
if not data:
break
file.write(data)
client_socket.close()
server_socket.close()
print('文件接收完成!')
if __name__ == '__main__':
server()
客户端
import socket
def client():
host = '127.0.0.1'
port = 12345
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
file_name = input('请输入文件名:')
client_socket.send(file_name.encode('utf-8'))
with open(file_name, 'rb') as file:
while True:
data = file.read(1024)
if not data:
break
client_socket.send(data)
client_socket.close()
if __name__ == '__main__':
client()
以上代码展示了如何使用Python的`socket`模块创建一个简单的文件传输服务器和客户端。服务器端等待客户端连接,接收文件名,然后接收文件内容并保存。客户端连接到服务器,发送文件名,然后发送文件内容。
请根据实际需求修改代码中的IP地址、端口号和文件名等参数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/140886.html