标签:开始 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