python Socket网络编程
常用模块
connect(address):连接远程计算机
send(bytes[,flags]):发送数据
recv(bufsize[,flags]):接收数据
bind(address):绑定地址
listen(backlog):开始监听,等待客户端连接
accept():响应客户端一个请求,接受一个连接
实例
服务端代码
import socket language={'what is you name':'I am Tom ','how old are you':'25','bye':'bye!'} HOST='127.0.0.1' PORT=6666 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #1、socket.AF_INET 面向网络的 2、socket.SOCK_STREAM表示tcp连接 s.bind((HOST,PORT)) s.listen(1) #listen里的参数表示最大连接数量 print("listing at port 6666") conn,addr=s.accept() #表示被动接收tcp客户端的连接 print('connect by: ',addr) while True: data=conn.recv(1024) #接收tcp数据,数据以字符串形式返回 data=data.decode() if not data: break print('received message:',data) conn.sendall(language.get(data,'nothing').encode()) #完整的发送数据 conn.close() s.close()
客户端代码
import socket,sys HOST='127.0.0.1' PORT=6666 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.connect((HOST,PORT)) except Exception as e: print('server not found') sys.exit() while True: c=input('you say:') s.sendall(c.encode()) data=s.recv(1024) data=data.decode() print('received:',data) if c.lower()=='再见': break s.close()
效果截图
__EOF__
作者: 随风kali
本文链接: https://www.cnblogs.com/sfsec/p/15580645.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接: https://www.cnblogs.com/sfsec/p/15580645.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!