标签:网络上传 nic 解析 产生 .so 英文 图片 自己的 就是
一、 了解一下编码的发展。四、 解析我实际遇到的问题
使用socket模块编写通信的脚本,原服务端:
#!/usr/bin/python3
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((‘‘,6000))
s.listen(1)
client,addr=s.accept()
print ("Connected by",addr)
client.send("welcome")
text=client.recv(1024)
print(text)
client.close()
s.close()
原客户端:
#!/usr/bin/python3
import socket
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
c.connect(("192.168.80.128",6000))
ans=c.recv(1024)
print(ans)
c.send("hello")
c.close()
执行结果
send()方法用来传递数据,将hello传递给服务端。
错误提示需要将str类型的字符串转换为bytes。在我们传递数据的时候应该先将str转换为bytes类型的数据方可。使用encode(‘utf-8’)或encode(‘ascii’);同时服务端的send()方法传递的数据也应该转换一下。
服务端修改代码:
client.send("welcome".encode(‘utf-8‘))
客户端修改代码:
c.send("hello".encode(‘utf-8‘))
修改后执行结果:
执行成功。
执行过程中,str被转换为bytes传递给对方。因为这里传递的是字母,内容上看不出是bytes,但是字符串前有个字母b,表示bytes。如果传递的是中文:
因为我们将str转换为了bytes。所以当我们接受数据的时候,应当将bytes转换为str
服务端修改代码:
text=client.recv(1024).decode(‘utf-8‘)
客户端修改代码:
ans=c.recv(1024).decode(‘utf-8‘)
执行结果:
总结完毕!!!
标签:网络上传 nic 解析 产生 .so 英文 图片 自己的 就是
原文地址:http://blog.51cto.com/12332766/2176929