通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2020-12-18
跳转到指定楼层
1#
发表于 2021-2-17 22:13:35 |只看该作者 |倒序浏览
编写myqq即时聊天脚本,实现相互通信

主要涉及socket通信,udp协议



#Client
from socket import *
#本地服务器地址,本机服务器,服务器端和客户端在同一个电脑上运行的时候,使用127.0.0.1
host = '127.0.0.1'
#客户端端口(确保和服务器的端口一致)

port = 12345
#缓存大小
bufsiz = 2048
#地址+端口
addc = (host, port)
#创建UDP的套接字类型。
udpclisock = socket(AF_INET, SOCK_DGRAM)
while True:
#输入数据
   
    msg = input('>')   
    udpclisock.sendto(msg.encode('utf-8'), addc)
   
# 第一个元素 connection 是新的 socket 对象,服务器必须通过它与客户通信;
# 第二个元素 address 是客户的 Internet 地址。
    data, adds = udpclisock.recvfrom(bufsiz)
   
    if not data: break
    print(data.decode('utf-8'))
   
udpclisock.close()


#Server
from socket import *
#1.创建UDP的套接字类型。
#AF_INET代表ip协议,SOCK_DGRAM代表udp协议
udpsersock = socket(AF_INET, SOCK_DGRAM)
#2.绑定到地址和端口
udpsersock.bind(('127.0.0.1',12345))
while True:
    #用recvfrom函数来接收信息
    data, addc = udpsersock.recvfrom(1024)
   
    if not data:break
   
    print(, data.decode('utf-8'))
    #输入数据
   
    msg = input('>')   
  
    udpsersock.sendto(msg.encode('utf-8'), addc)   
   
udpsersock.close()


注意:在同一个电脑上运行是,要打开两个IDLE,分别运行。

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

版规|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2025-8-4 19:59 , Processed in 0.096560 second(s), 17 queries , Gzip On.

Copyright © 1999-2025 C114 All Rights Reserved

Discuz Licensed

回顶部