标签:开始 bind 条件 监听 bsp 调试 ufs 服务端 pytho
今天学习了socket的一些知识,主要为socket模块中socket()类及其父类的一些方法
只要包括:
sock=socket.socket() sk.bind(address) #绑定自己的套接字信息 sk.listen([backlog]) #保持监听,直到有连接信息 sk.accept() #接收连接,并返回(socket object, address info)信息 sk.connect(address) #根据套接字信息连接对方的套接字 sk.sendall(string) #向对方发送信息,但必须为字节 sk.recv(bufsize) #接收对方的信息 sk.close() #关闭套接字
根据以上方法,我写了一个聊天小程序,如下
服务端
import socket sock=socket.socket() sock.bind((‘127.0.0.1‘,8001)) #保持监听 sock.listen(5) while 1: #等待对方的连接 con,address=sock.accept() #连接成功后向对方发送请求信息 con.sendall(bytes(‘对方已在线,请输入信息,当输入q时断开连接‘,encoding=‘utf-8‘)) #开始聊天 while 1: #接收信息 ming=con.recv(1024) xiao_ming=str(ming,encoding=‘utf-8‘) #对方断开连接 if xiao_ming==‘q‘: print(‘对方(小明)已断开连接‘) break print(‘小明(对方):‘+xiao_ming) #发送信息 hong=input(‘小红(你) :‘) con.sendall(bytes(hong,encoding=‘utf-8‘))
客户端
import socket soc=socket.socket() #根据地址信息连接对方 soc.connect((‘127.0.0.1‘,8001)) #接收对方的请求信息 mas=soc.recv(1024) massage=str(mas,encoding=‘utf-8‘) print(massage) #开始聊天 while 1: #发送信息 ming=input(‘小明(你) :‘) soc.sendall(bytes(ming,encoding=‘utf-8‘)) #断开连接条件 if ming==‘q‘: print(‘你已断开连接,若想发送信息请重新连接‘) break #接收信息 hon=soc.recv(1024) hong=str(hon,encoding=‘utf-8‘) print(‘小红(对方):‘+hong) soc.close()
在调试过程中,发现自己与自己对话真是一种奇妙与悲哀的感觉
标签:开始 bind 条件 监听 bsp 调试 ufs 服务端 pytho
原文地址:http://www.cnblogs.com/xiaolong1989/p/7742293.html