`
mmdev
  • 浏览: 12936790 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

我的第一个python之socket通信程序

 
阅读更多

刚刚开始接触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设备之间进行通信

    下面是一个更详细的代码示例,展示了如何使用Python和PyLoRa库在两个LoRa设备之间进行简单的双向通信: 代码中,发送端将一个浮点数值(3.14)打包为二进制数据,并通过LoRa通信socket发送。接收端从LoRa通信socket...

    第七周-第12章节-Python3.5-Socket通信案例消息发送与接收1.avi

    第七周-第12章节-Python3.5-Socket通信案例消息发送与接收1.avi

    第10周-第14章节-Python3.5-Select解析Socket通信1.avi

    第10周-第14章节-Python3.5-Select解析Socket通信1.avi

    Python socket网络编程TCP/IP服务器与客户端通信

    初学 python,前段时间买了两本书《python 编程从入门到实践》《Python 核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络...

    Python示例-从基础到高手PDF

    第1章 Python 处理 cassandra 升级后的回滚脚本 第 2 章 多套方案来提高 python web 框架的并发处理能力 第 3 章 python 写报警程序中的声音实现 winsound 第 4 章 一个脚本讲述 python 语言的基础规范,适合初学...

    Python中基础的socket编程实战攻略

    使用socket方法创建一个新的socket,通常提供两个参数,第一个参数是address family, 第二个是socket type。 #create an INET, STREAMing socket s = socket.socket(socket.AF_INET, socket.SOCK_STR

    python中network的用法.docx

    python中network的用法 Python中的network模块是一个强大的工具,它提供了许多网络编程的功能。这个模块可以用来创建网络应用程序,包括客户端...以下是一个例子: python中network的用法全文共3页,当前为第1页。 ```

    python实现进程间通信简单实例

    该实例采用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模块与pprint模块.pptx

    在Python中可以使用ipwhois第三方库来查询域名的详细信息,需要安装。 ipwhois模块是一个提供了获取和解析IPv4及IPv6地址的Whois信息。 ipwhos.lPWhoi是包装RDAP和Legacy' Whoi查找的基类。 Ipwhois模块 Ipwhois安装...

    python聊天.docx

    主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 发布一个用Python实现的一个在线聊天,主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 1.Python Socket;...

    Python网络编程基础

    本书后一部分侧重于Python网络编程高级应用方面的知识,讲解了如何使用多任务处理和无阻塞的I/O来编写可以同时处理上千个客户端的服务器程 序。在这个过程中,您将学到编写很多成功网络程序的奥秘。重要的是,通过...

    android下客户端与python服务端通信.zip

    这是一个简单的模拟android通信,这也是第一篇博客描述的项目,他实现了用python脚本充当服务端,android下写客户端,tcp模式连接,通过socket连接到服务端,实现简单的信息传递

    HP-Socket通信框架-其他

    基于Event Select / POLL通信模型,每个组件对象创建一个通信线程并管理一个Socket连接,适用于小规模客户端场景。 工作流程: 1、创建监听器 2、创建通信组件(同时绑定监听器) 3、启动通信组件 4、连接到目标主机...

    老男孩python 四期

    第一天 1、编程语言介绍 2、Python基础,介绍历史、发展情况及现状 3、Python安装、环境准备 4、编程风格、语法要求、变量格式等 5、编写用户交互脚本 6、读取用户输入 7、基本流程控制,if..else/for x in…/while ...

    Python核心编程第二版

     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协议的客户与服务端中文自动回复聊天功能示例

    本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能。分享给大家供大家参考,具体...2、客户端的第10行bind改为connect(这真是个大坑!!) (本文基于windows 7 + python 3.4) 完整代码

    abb_irb120 python控制接口

    abb_irb120 python控制...第一个程序是用ABB机器人控制语言RAPID编写的程序,该程序允许远程客户端发送对动作的请求(例如,关节运动,笛卡尔运动,速度变化等)。第二个是一系列库,您可使用python直接与机器人通信。

    Python核心编程第二版(ok)

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Pythonc对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

    python入门到高级全栈工程师培训 第3期 附课件代码

    第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用层 第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3...

    Android下Socket简单通信+Python服务器

    这是第一次接触到android相关知识,也是第一篇原创文章,就写一个简单的,为什么要来写这个呢?起初都是用一些小字条记录一些感受一些重要的的语句,我平时的编程呢,遇到错误都是来网上找相关的资料,学习新的东西...

Global site tag (gtag.js) - Google Analytics