Python(九)之网络编程
一般的网络通信:
Python中利用socket模块实现网络主机间通讯:
socket.socket(family,type)
family:套接字类型
AF_INET
AF_UNIX
type:
STREAM:tcp 流式
SOCK_DGRAM:udp 用户数据报
基于TCP服务端编程:
第一步:建立套接字对象:
tcpconn=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步:绑定地址
使用套接字对象的bind方法绑定与某地址和端口
tcpconn.bind((‘ip’,port))
tcpconn.bind(('192.168.2.168',8089))
第三步:使用listen方法进行监听
tcpconn.listen(backlog)
tcpconn.listen(100)
第四步:循环监听状态
使用套接字对象的accept方法接收用户请求
ci,cp = tcpconn.accept()
返回套接字对象和元组
编写客户端程序:
第一步,创建socket对象以连接服务器端
clientsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步:
clientsock.connect((‘server_ip’,port))
clientsock.connect((‘192.168.2.168’,8089))
第三步:发送请求
clientsock.send()
一个简单的服务端和客户端编程的实现:
服务端:mysocket.py
#!/usr/local/bin/python
import socket
tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_addr = ('192.168.2.168',8089)
tcpconn.bind(server_addr)
tcpconn.listen(20)
while True:
cinfo,caddr = tcpconn.accept()
print "Got a connect from %s" % caddr[0]
data = cinfo.recv(1024)
print "Receive data:%s" % data
cinfo.send("My is server,your data is "+ data)
cinfo.close()
客户端:csocket.py
#!/usr/local/bin/python
import socket
tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_addr = ('192.168.2.168',8089)
tcpconn.bind(server_addr)
tcpconn.listen(20)
while True:
cinfo,caddr = tcpconn.accept()
print "Got a connect from %s" % caddr[0]
data = cinfo.recv(1024)
print "Receive data:%s" % data
cinfo.send("My is server,your data is "+ data)
cinfo.close()
Python(九)之网络编程的更多相关文章
- python高级之网络编程
python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...
- 第六篇:python高级之网络编程
python高级之网络编程 python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...
- Python之路 - 网络编程之粘包
Python之路 - 网络编程之粘包 粘包
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- python进阶九_网络编程
Python网络编程一 一.一些基本概念 在Python网络编程这一节中会涉及到非常多网络相关的术语.对于一些最主要的概念,如TCP/IP,Socket等等不再赘述,不明确的能够自己去查一查,对于一些 ...
- Python 基础之----网络编程
阅读目录 一 客户端/服务端架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 ...
- python之路-----网络编程
一:客户端/服务端j架构(C/S架构) 在生活中,最常见的C/S架构即是APP和网页服务器这个架构.Client和Server之间利用网络来进行通信,客户端和服务器端的程序不同,用户的程序主要在客户端 ...
- python之Socket网络编程
什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在 ...
- 【循序渐进学Python】15.网络编程
Python 内置封装了很多常见的网络协议的库,因此Python成为了一个强大的网络编程工具,这里是对Python的网络方面编程的一个简单描述. 1. 常用的网络设计模块 在标准库中有很多网络设计相关 ...
- python 之socket 网络编程
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...
随机推荐
- apache日志记录格式LogFormat参数说明
在apache的配置文件httpd.conf里一般都有类似于LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Refere ...
- 指尖下的js ——多触式web前端开发之二:处理简单手势(转)
这篇文章将描述多触式网页开发中对手势(Gesture)事件的处理. 水果设备中的Gesture,广义的说包括手指点击(click),轻拂(flick),双击(double-click),两只手 ...
- k8s之服务发现
一.概述 k8s中支持两种服务发现方法: 环境变量和DNS 二.环境变量 当Pod被创建的时候,k8s将为Pod设置每一个Service的相关环境变量,这些环境变量包括两种类型: k8s Servic ...
- block(四)揭开神秘面纱(下)-b
看此篇时,请大家同时打开两个网址(或者下载它们到本地然后打开): http://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/BlocksRuntim ...
- 代码管理(四)SVN和Git对比
在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...
- PopUpWindow使用详解(二)——进阶及答疑
相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...
- iOS Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to
刚接触iOS,依照教程操作执行出现错误 Terminating app due to uncaught exception 'NSInternalInconsistencyException', re ...
- Java Nashorn--Part 6
Nashorn 的 JavaScript 语言的扩展 正如我们所讨论的,Nashorn 是一个完全符合 ECMAScript 5.1 的实现.然而除此之外,Nashorn 还实现了很多 JavaScr ...
- Java 8 – How to sort a Map
Java 8 – How to sort a Map 1. Quick ExplanationMap result = map.entrySet().stream() .sorted(Map.Entr ...
- PHP实现无符号右移(js中的 >>>)
移位包括有符号左移(<<).有符号右移(>>).无符号右移(>>>),其中 js 支持三种移位,PHP只支持前两种移位(没查到第三种),恰好需要PHP进行无符 ...