python中UDP方式实现socket通讯

Server:

import socket     

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(address)

while True:
    data, addr = s.recvfrom(2048)
    if not data:
        print "client has exist"
        break
    print "received:", data, "from", addr     

s.close()

Client:

import socket     

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)     

while True:
    msg = raw_input()
    if not msg:
        break
    s.sendto(msg, address)     

s.close()

运行结果:

server

[work@db-testing-com06-vm3.db01.baidu.com python]$ python udp_ss.py
received: aaaaaa from ('127.0.0.1', 10169)
received: 123456 from ('127.0.0.1', 10169)
received: abcdef from ('127.0.0.1', 10169)

client

[work@db-testing-com06-vm3.db01.baidu.com python]$ python udp_cc.py
aaaaaa
123456
abcdef

[work@db-testing-com06-vm3.db01.baidu.com python]$

python实在是太方便,太易用了,三方库的支持又全,语法又 简单,对开发人员来说,实在是居家旅行,XXXX的必备利器。周末研究了下python的网络支持,做一下记录,以备随后翻阅。

python支持BSD的socket进行网络编程,其API跟C中的大同小异,先看看TCP方式的,说到网络编程,肯定会设计 到server和client,分别来看下

TCP方式server端

server端的socket一般流程是这样:

建立一个socket( 可以选择socket类型INET,UNIX等,以及连接方式TCP/UDP)

使用bind公开一个端口,使得client可以方便连接

设 置一个listen队列的大小

进入一个无限循环,在此无限循环中,使用accept函数来等待客户连接,此函数返回一个新的 socket, 对应于客户端的socket,建立通信信道。对socket的处理一般放在外部单独的函数中(并发)

通过send()/recv() 来对socket进行读写操作

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, socket
, python 读写
, udp socket
, socket udp
, aaaaaa
, address
, Socket udp 
, received
, 一个
, 方式
, Python并发编程
socket方式
python socket udp、python socket 通讯、socket 实现即时通讯、python实现websocket、python实现线程间通讯,以便于您获取更多的相关知识。

时间: 2024-11-03 13:38:25

python中UDP方式实现socket通讯的相关文章

python中TCP方式实现socket通讯

Server: # server import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket() s.bind(address) s.listen(5) ss, addr = s.accept() print 'got connected from',addr ss.send('byebye') ra = ss.recv

Python中P2P方式实现简单的udp打洞

原来是本人的毕业设计.现在拿出来共享下.先申明,作者是lust,老师如果在网上搜到这段代码可不要说我的毕业设计是网上copy滴哈. 用python做了一个P2P的简单实现,可以通过在服务端注册公网IP和端口后,直接和其它客户端进行通信.目前只能在完全对称NAT下成功实现,在window 2003 nat服务和vmware自带的nat下测试成功.用iptables的nat不可行. 初学Python,代码不是很完善,比如logout没有写,只供参考. Server端代码: #!/usr/bin/py

Python Socket通讯程序例子

python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket. 客户端代码: #clietn.py if __name__ == '__main__':  #判断是否调用自己本身,如果不是则__name__为脚本名称 import socket  #导入我们所需的socket模块sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  #第一步是创建socket对象.调用so

Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那

socket c# c++-SOCKET 通讯c#对应 c++ 中的类型

问题描述 SOCKET 通讯c#对应 c++ 中的类型 int_stdcall ConnectNetPort(SOCKET *lpSocket,//传入已分配套接字的指针 SOCKADDR_IN *pPrinterAddr, //打印机的地址 timeval*lpTimeout); //超时 这是c++封装的dll 方法 实现SOCKET服务的 这几个参数类型 对应C# 中的那几个类型 在c#中引用后 传参 怎么写 真心 不懂这个 跪求答案 解决方案 C#有自己的socket库,只要通讯本身的协

谁知道python中urllib2与socket区别

问题描述 谁知道python中urllib2与socket区别 请问一下python中urllib2与socket的区别?我知道他们分别怎么用,也明白URLlib2用于网络,socket套接字用于服务器与客服端,但是他们俩分别都有什么区别和共同点呢?是否可以相互替换 解决方案 urllib2主要用来进行HTTP相关的web请求等socket则更底层,可以支持tcp,udp数据包发送.

距离详解Linux下的UDP方式通讯_C 语言

UDP方式点对点通讯  #include <stdio.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <errno.h> #include <stdlib.h> #include <arpa/inet.h> int main(int argc, char

线程-android中UDP socket通信的问题

问题描述 android中UDP socket通信的问题 我使用两个线程,一个用来发送 数据,一个用来接收数据,先开启接收数据线程,接收到数据之后然后回应给对方,但是发送一直停在SocketAddess s=pacakge.getSocketAddess这一步,pacakge是接收到的包.接收线程是这样的:while(true){ socket.receive(packge);}接收到包之后我开启发送线程就卡在上面 那步了,是不是 socket在处于阻塞状态时不能发送数据包啊? 解决方案 默认是

python中json格式数据输出实现方式

python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下:     #coding=UTF-8 import json info={} info["code"]=1 info["id"]=1900 info["name"]='张三' info["sex"]='男' list=[info,info,info] data={} data["code"]=