鱼C论坛

 找回密码
 立即注册
查看: 746|回复: 2

萌新问下为啥我写出来是半双工的。。

[复制链接]
发表于 2018-11-13 16:01:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from socket import *
from threading import Thread




def recv():
    while True:
        recvInfo =udpsocket.recvfrom(1024)
        print("[%s]:%s"  %(str(recvInfo[1]),recvInfo[0].decode("gb2312")) )


def send():
    while True:
        print('<<',end='')
        temp = input('')
        udpsocket.sendto(temp.encode("gb2312"),(destIp,destPort))

udpsocket = None
destIp = ''
destPort = 0

def main():
    global destPort
    global destIp
    global udpsocket

    destIp = "192.168.1.110"
    destPort = 8080
   
    udpsocket = socket(AF_INET,SOCK_DGRAM)
    udpsocket.bind(("",7788))

   
    se = Thread(target=send)
    re = Thread(target=recv)

    re.start()
    se.start()


    se.join()
    re.join()

if __name__=="__main__":
    main()
2.png
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-13 16:47:22 | 显示全部楼层
你这样写怪怪的,用多线程是想干什么啊,是想同时打同时收吗?python的多线程有一个GIL锁,一个进程其实同一时间只运行了一个线程,所以会出现这个状况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-13 16:50:07 | 显示全部楼层
额,我看一个其他的教学视频就是这么写的,可以做到同时收发,也没看到他用ctypes之类的模块啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-5 22:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表