Python3.4 threading socket 学习

#!/usr/bin/env python3
#file name: threadtest.py
# -*- coding:utf8 -*-
# -version:1.0-

import threading, time, socket

class Server():
    ‘‘‘接收消息的服务器类‘‘‘
    def __init__(self, port):
        self.port = port
        self.server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.server.bind(("", self.port))
        while True:
            data, addr = self.server.recvfrom(1024)
            if addr[0] == "127.0.0.1": continue
            print("\nMessage Comming: {}\tFrom: {}".format(data, addr))

class Client():
    ‘‘‘发送消息的客户端类‘‘‘
    def __init__(self, port):
        self.port = port
        self.host = "localhost"
        self.client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

def _sendToServer(self, msg):
        self.client.sendto(msg.encode("utf-8"), (self.host, self.port))

def reciveMsg():
    ‘‘‘处理接收消息的函数‘‘‘
    try:
        serv = Server(55553)
    except BaseException as e:
        print(str(e.args))

def sendMsg():
    ‘‘‘处理发送消息的函数‘‘‘
    try:
        clit = Client(55553)
        while True:
            msg = input("MSG-> ")
            clit._sendToServer(msg)
    except BaseException as e:
        print(str(e.args))

thread_list = []
def main():
    global thread_list
    try:
        recive_thread = threading.Thread(target = reciveMsg, name = "recive")
        recive_thread.start()
        thread_list.append(recive_thread)
        send_thread = threading.Thread(target = sendMsg, name = "send")
        send_thread.start()
        thread_list.append(send_thread)
    except BaseException as e:
        print(str(e.args))

if __name__=="__main__":
    main()

时间: 2024-07-31 16:38:29

Python3.4 threading socket 学习的相关文章

C++ Socket 学习笔记

Socket学习笔记 以下均为整理,做参考之用. IP Address IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异. IP地址被用来给Internet上的电脑一个编号.大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信.我们可以把"个人电脑"比作"

Python多线程(threading)学习总结

注:此文除了例子和使用心得是自己写的,很多都是Python核心编程中的原文.原文文风应该能看出来,就不每个地方单独表明出处了. 线程(有时被称为轻量级进程)跟进程有些相似,不同的是,所有的线程运行在同一个进程中,共享相同的运行环境.它们可以想像成是在主进程或"主线程"中并行运行的"迷你进程". 线程有开始,顺序执行和结束三部分.它有一个自己的指令指针,记录自己运行到什么地方.线程的运行可能被抢占(中断),或暂时的被挂起(也叫睡眠),让其它的线程运行,这叫做让步.一个

socket学习及各类错误码(部分转)

如果本地有多个网卡(即多个ip),要指定本地发送网卡,则在建立的socket上bind所指定的网卡进行connect和send操作.例子程序如下: #include <stdio.h>#include "WinSock2.h"#pragma comment(lib,"ws2_32.lib") SOCKET tcp_socket;SOCKADDR_IN tcpAddr;const int BufLen=1024;char SendBuf[BufLen];

JAVA Socket学习笔记20140618

2014-06-18  23.59 http://blog.csdn.net/kongxx/article/details/7288896 http://blog.csdn.net/wwww1988600/article/details/8923927 http://blog.csdn.net/xunianchong/article/details/16358077 http://blog.csdn.net/wwww1988600/article/details/8924081 http://w

Android socket 学习记录 之 执行new socket(ip, port)程序崩溃

这段时间在学习Android的socket编程,我不是专做APP的,做的是bootloader.驱动.hal.framework这个线的,也就是系统搭建和功能优化设计.为了打通这整条线,为此学习了不少东西,今天把Android的socket学习记录一下,以防止以后会出现这样的低级错误. 我这里是在极客学院的源码基础上做的自己的一些添加和修改,学习开始不就是先会修改么,举一反三,自然就很快学会了.由于看过视频和资料后就迫不及待的按照自己的想法想做一个功能,但是遇到麻烦了,就是执行new socke

Android local socket学习总结

转载请注明出处: http://blog.csdn.net/xiexh0921/article/details/7513628 ############################################## 目的:实现本地 C程序与apk的socket通信. 原理:没有涉及到网络通信,所以使用Android封装的local socket要更简单 参考:系统源码RIL模块 整理:Andy.xie ############################################

Socket 学习(三).4 DUP 穿透 客户端与客户端连接

效果图: 使用方法:  先 修改WinClient\bin\Debug  下面的 ip.ini,写上 服务器 IP地址. 客户端 与 客户端 通讯 之前 ,点击发送打洞消息 按钮,然后过一会再发送消息. 代码 很多, 参见: http://www.cnblogs.com/LeoWong/archive/2009/09/25/1574266.html 已经放在  MVC EF Bootstrap技术交流   206058845    里面的文件里面了.感兴趣的可以去下载.文件名 Socket穿透.

Android基础入门教程——7.6.1 Socket学习网络基础准备

Android基础入门教程--7.6.1 Socket学习网络基础准备 标签(空格分隔): Android基础入门教程 本节引言: 为了照顾没学过Java Socket的初学者,或者说捋一捋Android开发中涉及到的网络协议相关的概念, 毕竟面试的时候,面试官来了句给我说下网络协议有几层?那么IP协议在哪层?Socket是什么鬼? 分哪几种?TCP和UDP协议又在哪层?有什么区别-嗯,这-所以学习本节概念性的理论还是很有 必要的!那么话不多说,开始本节内容~ 1.OSI七层网络模型浅析 当然,

Python3.x:基础学习

Python3.x:基础学习 1,Python有五种标准数据类型 1.数字 2.字符串 3.列表 4.元组 5.字典 (1).数字 数字数据类型存储数字值.当为其分配值时,将创建数字对象. var1 = 10 var2 = 20 可以使用del语句删除对数字对象的引用. del语句的语法是 del var1[,var2[,var3[....,varN]]]] 可以使用del语句删除单个对象或多个对象. del var del var_a, var_b Python支持三种不同的数值类型 - in