标签:ip地址 serve bin 技术分享 客户 oca http socket 分享图片
先放个题外话,了解一下OSI七层网络模型,这里放一张网上的图
再大致了解一下socket的基本概念:
1 import socket 2 server = socket.socket() 3 server.bind((‘localhost‘,9999)) 4 server.listen() 5 conn,addr = server.accept() 6 print(conn,addr) 7 print("开始") 8 while True: 9 data = conn.recv(1024) 10 print(data.decode()) 11 conn.send(data.upper().encode()) 12 server.close()
1 import socket 2 client = socket.socket() 3 client.connect((‘localhost‘,9999)) 4 while True: 5 msg = input(‘>>>‘).strip() 6 client.send(msg.encode(‘utf-8‘)) 7 data = client.recv(1024) 8 print("recv:",data.decode()) 9 client.close()
发送的data必须为byte的格式,(在python2中好像不太一样,忘记了!),所以要把数据encode成utf-8的格式(utf-8可以省略不写,是默认的)在收到数据后在decode一下就可以。
这里还要注意的是int格式的数据不能encode,可以先转换成str的格式。
都敲好以后,先运行service端,然后再运行client端,就可以试一试了!
调试好以后我们可以稍微来个复杂一点的,把服务器放在linux里,客户端就还在pycharm里。但是要把代码稍微改一改,先启动linux,ifconfig一下
ip是192.168.75.130,把客户端的localhost改成这个ip地址,端口号不用换
1 import socket 2 client = socket.socket() 3 client.connect((‘192.168.75.130‘,9999)) 4 while True: 5 msg = input(‘>>>‘).strip() 6 client.send(msg.encode(‘utf-8‘)) 7 data = client.recv(1024) 8 print("recv:",data.decode("utf-8")) 9 client.close()
1 import socket 2 server = socket.socket() 3 server.bind((‘0.0.0.0‘,9999)) 4 server.listen() 5 conn,addr = server.accept() 6 print(conn,addr) 7 print("开始") 8 while True: 9 data = conn.recv(1024).decode() 10 print(data) 11 conn.send(data.upper().encode()) 12 server.close()
服务器端的ip地址要改成0.0.0.0
先后运行一下,OK
成功!!
标签:ip地址 serve bin 技术分享 客户 oca http socket 分享图片
原文地址:https://www.cnblogs.com/yinsedeyinse/p/10227282.html