python 实现简单服务器server和客户端client

服务端 server.py

import socket

s = socket.socket()

host = socket.gethostname()
port = 8000
s.bind((host,port))

s.listen(5)
while True:
    c, addr = s.accept()
    print("got connection from",addr)
    data = 'Thank you for connecting'
    c.send(data.encode())
    c.close()

客户端 client.py

import socket

s = socket.socket()

host = socket.gethostname()
port = 8000

s.connect((host, port))
print(s.recv(1024).decode())

server运行结果:

got connection from ('10.39.3.146', 65192)

client运行结果:

Thank you for connecting

还有个python2和Python3的坑:
TypeError: a bytes-like object is required, not ‘str’

In python 3, bytes strings and unicodestrings are now two different types. Since sockets are not aware of string encodings, they are using raw bytes strings, that have a slightly differentinterface from unicode strings.
So, now, whenever you have a unicode stringthat you need to use as a byte string, you need toencode() it. And whenyou have a byte string, you need to decode it to use it as a regular(python 2.x) string.
Unicode strings are quotes enclosedstrings. Bytes strings are b”” enclosed strings
When you use client_socket.send(data),replace it by client_socket.send(data.encode()). When you get datausing data = client_socket.recv(512), replace it by data =client_socket.recv(512).decode()

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP (传输控制协议) 是一种面向连接的协议,用于在网络上可靠地传输数据。在 Python 中,我们可以使用 socket 模块来实现 TCP 客户端服务器。 下面是一个简单的例子: ## TCP 服务器 ```python import socket # 创建一个 TCP 服务器套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定地址和端口 server_socket.bind(('127.0.0.1', 8888)) # 开始监听客户端连接 server_socket.listen(1) print('服务器启动,等待连接...') # 接受客户端连接 client_socket, client_address = server_socket.accept() print('客户端已连接:', client_address) # 接收客户端发送的数据 data = client_socket.recv(1024) print('收到数据:', data.decode()) # 发送响应数据给客户端 response = 'Hello, client!' client_socket.send(response.encode()) # 关闭连接 client_socket.close() server_socket.close() ``` ## TCP 客户端 ```python import socket # 创建一个 TCP 客户端套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect(('127.0.0.1', 8888)) print('连接服务器成功!') # 发送数据给服务器 message = 'Hello, server!' client_socket.send(message.encode()) # 接收服务器响应数据 response = client_socket.recv(1024) print('收到服务器响应:', response.decode()) # 关闭连接 client_socket.close() ``` 在运行服务器客户端代码之前,请确保您已经安装了 Pythonsocket 模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值