服务器端
#服务器端import socketserver = socket.socket()server.bind(('localhost',6969))#绑定要监听的端口server.listen() #监听conn,address = server.accept() #等待接收数据 返回两个值,一个是对方的标记位,一个是对方的地址print(conn,address )data = conn.recv(1024) #接收数据,谁发数据给我就用谁的标记位接收print(data)conn.send(data.upper()) #发送数据,要发给谁就用谁的标记位server.close()#=========执行结果==========('127.0.0.1', 50169)b'hello world'
客户端
#客户端import socketclient = socket.socket()#声明socket类型,同时生成socket连接对象client.connect(('localhost',6969)) client.send(b'hello world') #发送数据data = client.recv(1024) #接收指定大小的字节print(data)client.close()#==========执行结果=========b'HELLO WORLD'
如果要发送中文就必须要转成bytes类型,字符串通过encode()方法转出来的就是bytes类型。
重新发送一条中文,服务器端代码不变,客户端代码转下编码重新发送。
服务器端
#服务器端import socketserver = socket.socket()server.bind(('localhost',6969))#绑定要监听的端口server.listen() #监听conn,address = server.accept() #等待接收数据 返回两个值,一个是对方的标记位,一个是对方的地址print(conn,address )data = conn.recv(1024) #接收数据,谁发数据给我就用谁的标记位接收print(data)conn.send(data.upper()) #发送数据,要发给谁就用谁的标记位server.close()#=============执行结果=============('127.0.0.1', 51032)b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd'
客户端
#客户端import socketclient = socket.socket()#声明socket类型,同时生成socket连接对象client.connect(('localhost',6969))client.send('你好,中国'.encode("utf-8")) #发送数据data = client.recv(1024) #接收指定大小的字节print(data)print(data.decode()) #client.close()#=======执行结果============b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd'你好,中国
所有的数据传送接收必须用bytes类型。