刚刚开始接触python,实现了一个helloworld程序---关于udp协议的socket通信demo。
首先服务端这边的实现如下:
import socket, traceback
host = '' # Bind to all interfaces
port = 51500
# Step1: 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Step2: 设置socket选项(可选)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Step3: 绑定到某一个端口
s.bind((host, port))
# Step4: 监听该端口上的连接
while 1:
try:
message, address = s.recvfrom(8192)
print "Got data from ", address
s.sendto("Data is received succeefully.", address)
except (KeyboardInterrupt, SystemExit):
print "raise"
raise
except :
print "traceback"
traceback.print_exc()
其中,host置为空,意思是可以绑定到所有的接口和地址,无论是哪个客户端的请求,只要是绑定到了同样的端口,那么服务器就可以监听到这个请求。
在tcp连接中,监听客户端的请求需要用到listen或accept函数,并有一个专门的socket和远程极其连接。
接着使我们的客户端实现:
import socket, sys
# Step1: 输入host和port信息
host = raw_input('please input host name: ')
textport = raw_input('please input textport: ')
# Step2: 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
port = int(textport)
except ValueError:
port = socket.getservbyname(textport, 'udp')
# Step3: 打开socket连接
s.connect((host, port))
# Step4: 发送数据
print "Enter data to transmit: "
data = sys.stdin.readline().strip()
s.sendall(data)
# Step5: 接收服务器发过来的数据
print "Looking for replies; press Ctrl-C or Ctrl-Break to stop"
while 1:
buf = s.recv(2048)
if not len(buf):
break
sys.stdout.write(buf)
这个例子就是这么简单,实现起来和C语言版的差不多。看来,只要是了解socket编程的,用不同的语言实现也会相差无几。
分享到:
相关推荐
下面是一个更详细的代码示例,展示了如何使用Python和PyLoRa库在两个LoRa设备之间进行简单的双向通信: 代码中,发送端将一个浮点数值(3.14)打包为二进制数据,并通过LoRa通信socket发送。接收端从LoRa通信socket...
第七周-第12章节-Python3.5-Socket通信案例消息发送与接收1.avi
第10周-第14章节-Python3.5-Select解析Socket通信1.avi
初学 python,前段时间买了两本书《python 编程从入门到实践》《Python 核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络...
第1章 Python 处理 cassandra 升级后的回滚脚本 第 2 章 多套方案来提高 python web 框架的并发处理能力 第 3 章 python 写报警程序中的声音实现 winsound 第 4 章 一个脚本讲述 python 语言的基础规范,适合初学...
使用socket方法创建一个新的socket,通常提供两个参数,第一个参数是address family, 第二个是socket type。 #create an INET, STREAMing socket s = socket.socket(socket.AF_INET, socket.SOCK_STR
python中network的用法 Python中的network模块是一个强大的工具,它提供了许多网络编程的功能。这个模块可以用来创建网络应用程序,包括客户端...以下是一个例子: python中network的用法全文共3页,当前为第1页。 ```
该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX 而不是 socket.AF_INET 例中两个python程序 s.py/c.py 要先运行s.py 基于fedora...
在Python中可以使用ipwhois第三方库来查询域名的详细信息,需要安装。 ipwhois模块是一个提供了获取和解析IPv4及IPv6地址的Whois信息。 ipwhos.lPWhoi是包装RDAP和Legacy' Whoi查找的基类。 Ipwhois模块 Ipwhois安装...
主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 发布一个用Python实现的一个在线聊天,主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 1.Python Socket;...
本书后一部分侧重于Python网络编程高级应用方面的知识,讲解了如何使用多任务处理和无阻塞的I/O来编写可以同时处理上千个客户端的服务器程 序。在这个过程中,您将学到编写很多成功网络程序的奥秘。重要的是,通过...
这是一个简单的模拟android通信,这也是第一篇博客描述的项目,他实现了用python脚本充当服务端,android下写客户端,tcp模式连接,通过socket连接到服务端,实现简单的信息传递
基于Event Select / POLL通信模型,每个组件对象创建一个通信线程并管理一个Socket连接,适用于小规模客户端场景。 工作流程: 1、创建监听器 2、创建通信组件(同时绑定监听器) 3、启动通信组件 4、连接到目标主机...
第一天 1、编程语言介绍 2、Python基础,介绍历史、发展情况及现状 3、Python安装、环境准备 4、编程风格、语法要求、变量格式等 5、编写用户交互脚本 6、读取用户输入 7、基本流程控制,if..else/for x in…/while ...
3.6 第一个Python程序 3.7 相关模块和开发工具 3.8 练习 第4章 Python对象 4.1 Python 对象 4.2 标准类型 4.3 其他内建类型 4.3.1 类型对象和type类型对象 4.3.2 None--...
本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能。分享给大家供大家参考,具体...2、客户端的第10行bind改为connect(这真是个大坑!!) (本文基于windows 7 + python 3.4) 完整代码
abb_irb120 python控制...第一个程序是用ABB机器人控制语言RAPID编写的程序,该程序允许远程客户端发送对动作的请求(例如,关节运动,笛卡尔运动,速度变化等)。第二个是一系列库,您可使用python直接与机器人通信。
3.6 第一个Python程序 3.7 相关模块和开发工具 3.8 练习 第4章 Python对象 4.1 Pythonc对象 4.2 标准类型 4.3 其他内建类型 4.3.1 类型对象和type类型对象 4.3.2 None--...
第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用层 第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3...
这是第一次接触到android相关知识,也是第一篇原创文章,就写一个简单的,为什么要来写这个呢?起初都是用一些小字条记录一些感受一些重要的的语句,我平时的编程呢,遇到错误都是来网上找相关的资料,学习新的东西...