多线程socket收发数据

from threading import Thread
from socket import *

def sendData():
    while True:
        sendInfo = input(‘<<‘)
        udpSocket.sendto(sendInfo.encode(‘gb2312‘),(destIp,destPort))

def recevData():
    while True:
        recvInfo = udpSocket.recvfrom(1024)
        print(‘>>%s : %s‘%(str(recvInfo[1]),recvInfo[0].decode(‘gb2312‘)))

udpSocket = None
destIp = ‘‘
destPort = 0
def main():
    global udpSocket
    global destIp
    global destPort
    destIp = input(‘请输入对方IP:‘)
    destPort = int(input(‘请输入对方Port:‘))
    udpSocket = socket(AF_INET,SOCK_DGRAM)
    udpSocket.bind((‘‘,6677))

    ts = Thread(target=sendData)
    tr = Thread(target=recevData)

    ts.start()
    tr.start()

    ts.join()
    tr.join()

if __name__ == ‘__main__‘:
    main()
时间: 2024-08-02 11:04:01

多线程socket收发数据的相关文章

Python 异步收发数据socket实战

Python 写了一个收发数据用的socket,自己测并发可以达到10K+,用了20分钟撸了一个,不多讲直接晒代码 #!/usr/bin/python #coding:utf-8 # author:51reboot.com import socket,select import os,sys,copy HOST = '0.0.0.0' PORT = 8089 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(so

使用libevent进行多线程socket编程demo

最近要对一个用libevent写的C/C++项目进行修改,要改成多线程的,故做了一些学习和研究. libevent是一个用C语言写的开源的一个库.它对socket编程里的epoll/select等功能进行了封装,并且使用了一些设计模式(比如反应堆模式),用事件机制来简化了socket编程.libevent的好处网上有很多,但是初学者往往都看不懂.我打个比方吧,1)假设有N个客户端同时往服务端通过socket写数据,用了libevent之后,你的server程序里就不用再使用epoll或是sele

【NodeJs】使用TCP套接字收发数据的简单实例

因为TCP协议是流协议,在收发数据的时候会有粘包的问题.本例使用自定义的SPtcp封包协议对TCP数据再进行一次封装,解决了粘包问题. 注:其性能仍有待优化.优化方向:使用TCP自带的接收窗口缓存. sptcp.js /** * script: sptcp.js * description: 简单封包协议SPtcp类 * authors: [email protected] * date: 2016-04-14 */ var util = require('util'); function SP

收发数据的原理(下)

因为网络原理不是三言两语可以讲完,如果读者很忙,可以直接拉到最底下,看总结,知道个大概,再回头细读此文章.感谢关注.废话不多说,直接进入主题.在上篇我们已经讲了TCP收发数据的前两步,接下来是最后两步. 将HTTP消息传给协议栈 上篇讲到控制流程从 connect 回到应用程序之后,就到了数据收发阶段. 数据收发数据是从应用程序调用write将要发送的数据交给协议栈开始的,协议栈收到数据后执行发送操作,这一操作包含如下要点. 首先,协议栈并不关心应用程序传来的数据是什么内容.应用程序调用writ

dsp28377控制DM9000收发数据

首先感谢上一篇转载文章的作者给出的参考,下面是一些自己在调试过程中的一些步骤: 首先把代码贴上来: //---------------------------------------------------------------------------------------------//DSP28377 利用EMIF控制网口DM9000芯片收发数据//----------------------------------------------------------------------

android4.2串口jni收发数据(基于自定义协议)

代码已经验证过,没问题 ! 代码层次结构: |-----serial_communication_class--- |                     |-------src--------- |                                  |------com------ |                                             |----object----- |                                

openVswitch(OVS)源代码分析之工作流程(收发数据包)

前面已经把分析openVswitch源代码的基础(openVswitch(OVS)源代码分析之数据结构)写得非常清楚了,虽然访问的人比较少,也因此让我看到了一个现象:第一篇,openVswitch(OVS)源代码分析之简介其实就是介绍了下有关于云计算现状和openVswitch的各个组成模块,还有笼统的介绍了下其工作流程,个人感觉对于学习openVswitch源代码来说没有多大含金量.云计算现状是根据公司发展得到的个人体会,对学习openVswitch源代码其实没什么帮助:openVswitch

dsp28377控制DM9000收发数据——第二版程序,能够实现手术功能,但是容易掉帧;使用读取中断寄存器的方式判断中断

G:\controlSUITE\device_support\F2837xD\v180\F2837xD_examples_Cpu1\emif1_16bit_asram\cpu01\emif1_16bit_asram.c 2016年11月22日 20:35//---------------------------------------------------------------------------------------------//DSP28377 利用EMIF控制网口DM9000芯

云计算之路-阿里云上:原来“黑色0.1秒”发生在socket读取数据时

在昨天的博文(云计算之路-阿里云上:读取缓存时的"黑色0.1秒")中我们犯了一个很低级的错误--把13ms算成了130ms(感谢陈硕发现这个错误!),从而对问题的原因作出了错误的推断,望大家谅解! 从中我们吸取到了一个教训:趁热打铁要小心,容易失去冷静,作出错误的判断. 今天我们痛定思痛,用了一个下午的时间重新分析了"黑色0.1秒"问题,这次从EnyimMemcached的源代码下手(https://github.com/enyim/EnyimMemcached).