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地址和端口,是一个通信 ...
随机推荐
- 全网最详细的Windows系统里PLSQL Developer 64bit安装之后的一些配置(图文详解)
不多说,直接上干货! 注意的是: 本地若没有安装Oracle服务端,Oracle server服务端64位,是远程连接,因此本地配置PLSQL Developer64位. PLSQL Develope ...
- 有意思的App
掘金 javadoop 专业相机也羡慕奖 – Focos 说个睡前故事 so easy 奖 – 洪恩双语绘本 效率蹭蹭上升奖 – Sorted³ 时光隧道走一回奖 – NOMO 相机 设计师也爱用奖 ...
- JavaScript -- FileSystemObject
-----056-FileSystemObject.html----- <!DOCTYPE html> <html> <head> <meta http-eq ...
- dhcp服务器(一)
DHCP服务概述: 名称:DHCP -Dynamic Host Configuration Protocol动态主机配置协议. 功能:DHCP(Dynamic Host Configuration P ...
- python get请求
#!/usr/bin/python #-*- coding:UTF-8 -*-#coding=utf-8 import requests import time import hashlib impo ...
- Docker基础教程(命令详解)
# docker --help Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h ...
- Spring-web初始化流程简图
- 在Windows安装运行Kafka
一.安装JAVA JDK 1.下载安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- Net is as typeof 运行运算符详解
概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Time Type Identification),通过运 ...
- POJ1269(KB13-D 计算几何)
Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16681 Accepted: 71 ...