没有合适的资源?快使用搜索试试~ 我知道了~
首页Python基于Socket实现简易多人聊天室的示例代码
前言 套接字(Sockets)是双向通信信道的端点。 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器。 套接字可以通过多种不同的通道类型实现:Unix域套接字,TCP,UDP等。 套接字库提供了处理公共传输的特定类,以及一个用于处理其余部分的通用接口。 socket模块: 要创建套接字,必须使用套接字模块中的socket.socket()函数,该函数具有一般语法 s = socket.socket (socket_family, socket_type, protocol = 0) 参数 描述 so
资源详情
资源评论
资源推荐

Python基于基于Socket实现简易多人聊天室的示例代码实现简易多人聊天室的示例代码
前言前言
套接字(Sockets)是双向通信信道的端点。 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间
进行通信,主机可以是任何一台有连接互联网的机器。
套接字可以通过多种不同的通道类型实现:Unix域套接字,TCP,UDP等。 套接字库提供了处理公共传输的特定类,以及一
个用于处理其余部分的通用接口。
socket模块:模块:
要创建套接字,必须使用套接字模块中的socket.socket()函数,该函数具有一般语法
s = socket.socket (socket_family, socket_type, protocol = 0)
参数参数 描述描述
socket_family 它的值可以是:AF_UNIX或AF_INET,如前所述。
socket_type 它的值可以是:SOCK_STREAM或SOCK_DGRAM。
protocol 这通常被省略,默认为0。
常用方法:
序序
号号
方法方法 描述描述
1 s.bind() 此方法将地址(主机名,端口号对)绑定到套接字。
2 s.recvfrom()
此方法接收UDP消息,返回值是一对(字节, 地址) ,其中字节是代表接收到的数据的字节对
象,而地址是发送数据的套接字的地址
3 s.sendto()
此方法发送UDP消息,将数据发送到套接字。该套接字不应连接到远程套接字,因为目标套接字是
由address指定的
4 s.close()
此方法关闭套接字,套接字对象上所有以后的操作都将失败。远端将不再接收任何数据(在清除排
队的数据之后)。套接字在被垃圾回收时会自动关闭
5 socket.gethostname() 返回主机名,返回一个字符串,其中包含当前正在执行Python解释器的计算机的主机名。
示例示例1
服务器端
#sever.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
host = socket.gethostname()
port = 8088
s.bind((host,port))
try:
while True:
receive_data,addr = s.recvfrom(1024)
print("来自服务器" + str(addr) + "的消息:")
print(receive_data.decode('utf-8'))
msg = input('please input send to msg:')
s.sendto(msg.encode('utf-8'),addr)
except:
s.close()
客户端
#client.py
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
try:
while True:
host = socket.gethostname()
port = 8088
send_data = input('please input msg:')
s.sendto(send_data.encode('utf-8'),(host,port))
msg,addr = s.recvfrom(1024)

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0