python 之socket
socket,它最初做为BSD UNIX的进程通信机制,通常被称做"套接字",如今已经成为windows和mac等其它操作系统所共同遵守的网络编程标准。
socket使用ip+端口+协议的三组组合,来标识一个通信链路。

一、socket 的TCP
Server端代码:
#!/usr/bin/python
# -*- coding: utf- -*-
import socket
import datetime HOST = '0.0.0.0'
PORT = # AF_INET ipv4, SOCK_STREAM tcp
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 第一步:建立sockeet
s.bind((HOST, PORT)) # 第二步:绑定 服务器及端口
s.listen() # 第三步:监听(允许5个并发accept) while True:
conn, addr = s.accept() # 第四步:等待接收客户端连接
print 'Client %s connected!' % str(addr) # 输出客户端的连接
dt = datetime.datetime.now()
msg = "Current time is " + str(dt)
conn.send(msg) # 第五步:接收或发送数据(自动给连接的客户端发送数据)
print "Send:", msg
conn.close() # 第六步:关闭连接
Client端代码:
#!/usr/bin/python
# -*- coding: utf- -*-
import socket HOST = 'xx.xx.xx.244' # server端ip
PORT = # # AF_INET ipv4, SOCK_STREAM tcp
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 第一步:建立socket
s.connect((HOST, PORT)) # 第二步:连接服务器
print "Connect %s:%s"%(HOST, PORT)
data = s.recv() # 第三步:收发数据(从服务器接收数据)
print "Received:", data
s.close() # 第四步:关闭连接
执行结果:

二、socket UDP
UDP相对于TCP没有建立连接、监听、断开连接等概念,UDP有独属于自己的语法 :
recvfrom():从绑定的地址接收数据
sendto():向指定的地址发送数据 Server端:
#!/usr/bin/python
# -*- coding: utf- -*-
import socket HOST = '0.0.0.0'
PORT = # AF_INET ipv4, SOCK_DGRAM udp
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 第一步:建立socket对象
s.bind((HOST, PORT)) # 第二步:绑定 服务器及端口 while True:
data, addr = s.recvfrom() # 第三步:接收客户端发送来的消息
print "Recevied: %s from %s"%(data, str(addr)) s.close() # 第四步:关闭连接
Client端:
#!/usr/bin/python
# -*- coding: utf- -*-
import socket HOST = '47.94.57.244'
PORT = # AF_INET ipv4, SOCK_DGRAM udp
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 第一步:建立socket
data = "UDP DATA from client.."
s.sendto(data, (HOST, PORT)) # 第二步:给服务端发送数据
print "Send:%s to %s:%s"%(data, HOST, str(PORT))
s.close() # 第三步:关闭连接
其它参考:
https://www.cnblogs.com/aylin/p/5572104.html
python 之socket的更多相关文章
- 进击的Python【第十章】:Python的socket高级应用(多进程,协程与异步)
Python的socket高级应用(多进程,协程与异步)
- Python底层socket库
Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...
- 转:Python 的 Socket 编程教程
这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...
- Python Udp Socket
socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...
- Python Tcp Socket
socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...
- Python 之socket的应用
本节主要讲解socket编程的有关知识点,顺便也会讲解一些其它的关联性知识: 一.概述(socket.socketserver): python对于socket编程,提供了两个模块,分别是socket ...
- python tcp socket 多线程
不多说,直接上代码 client.py #!/usr/bin/python import socket,sys,string host="localhost" port=8000 ...
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具
老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...
- 操作系统底层原理与Python中socket解读
目录 操作系统底层原理 网络通信原理 网络基础架构 局域网与交换机/网络常见术语 OSI七层协议 TCP/IP五层模型讲解 Python中Socket模块解读 TCP协议和UDP协议 操作系统底层原理 ...
- python中socket模块详解
socket模块简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket通常被叫做"套接字",用于描述IP地址和端口,是一个通信 ...
随机推荐
- 怎么样imageview实现铺满全屏
<ImageView android:layout_width="match_parent" android:layout_height="match_parent ...
- mysqldump 用法
mysqldump 是文本备份还是二进制备份 它是文本备份,如果你打开备份文件你将看到所有的语句,可以用于重新创建表和对象.它也有 insert 语句来使用数据构成表. mysqldump 的语法是什 ...
- 【一个小功能】点击图标/链接发起QQ临时会话
有时候,我们需要实现在网页上点击一个QQ图标来实现QQ临时会话,这样不用添加好友,也能满足及时沟通的需求. 实现方案比较简单,只是为a标签修改href属性,代码如下 <a href=" ...
- git第一节----git config配置
@查看git的版本 git --version @查看git配置信息 git config --list config list分全局和局部,在根目录下执行git config --list显示为全局 ...
- windows7 资源管理器无法显示常用
1.windows7 资源管理器无法显示常用 2.windows7 资源管理器无法附加的解决办法. 删除以下文件夹内的所有文件即可%APPDATA%\Microsoft\Windows\Recent\ ...
- MVC之——Razor语法
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download View里所有以@开头或@(/*代码*)的部分代码都会 ...
- RabbitMQ学习系列一:windows下安装RabbitMQ服务
Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang. 第一步下载erlang:http://www.erlang.org/download ...
- js实现iview表格 排名列
(有误,请勿观看) 一.排名的简单实现 //排名例子1 //需要排名的数组 //var myArray = [5,7, 7, 9, 8, 6, 23]; //新数组 //var thisArray = ...
- ADO.NET获取数据(DataSet)同时获取表的架构
普通的ADO.NET获取DataSet的写法如下: using System.Configuration; using System.Data; using System.Data.SqlClient ...
- eclipse中Cannot change version of project facet Dynamic Web Module to 3.0的问题解决
在做web配置的时候,希望将web Module(Web模块)更换为3.0,发生如下错误: cannot change version of project facet Dynamic Web Mod ...