Socket网络通讯
本文于
579
天之前发表,文中内容可能已经过时。
Socket是一种基础的网络协议,在这种协议的基础上可以做很多事比如聊天室、文件传递等。
Socket通信原理
- 服务端new一个实例和socket绑定,然后监听
- accept客户端的connect请求之后,read其内容
- 根据客户端的内容做出处理,反写(write)给客户端
- 客户端读取server的数据
- …
- close
Python代码
Python代码分为server
端和client
端,实测通讯成功。C++因为VS的版本会报错(采用了新的接口之类),因此暂缓实现。
- server.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
import socket s = socket.socket()
host = '0.0.0.0' port = 12123 s.bind((host, port)) s.listen(5) print("host:",host,"port:",port,"waiting...") while True: c,addr = s.accept() print('Get connection from', addr) c.send(bytes('Success connecting from %s:%s'%addr, encoding='UTF-8')) while True: data = c.recv(1024) if not data: break print(data) c.send(data) c.close()
|
- client.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
import socket s = socket.socket()
host = '1.117.177.117' port = 12123 s.connect((host, port)) print(s.recv(1024)) while True: inp = input(">>>") if not inp: continue s.send(bytes(inp,encoding="utf-8")) print(s.recv(1024))
|
参考文献
- https://cloud.tencent.com/developer/article/1569435
- https://www.runoob.com/w3cnote/android-tutorial-socket1.html
- https://www.runoob.com/python/python-socket.html