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 ...
随机推荐
- 转:一篇很全面的freemarker教程
最近在使用freemarker,于是在网上找了一些教程学习,如下: 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组 ...
- 简单解决XP共享连接数10限制(转)
1.建立一个txt文件,在里面输入以下文字:net session /delete /y,并将其保存为clear session.bat文件.net session用于查看本机共享的会话详细情况,可以 ...
- Windbg(2)
摘抄于:http://www.cnblogs.com/awpatp/category/228209.html Debug相关的一些小技巧 摘要: 1. 如何Debug一个进程的子进程? 答: 使用Wi ...
- Magento模型与ORM基础
参考网址:http://www.ruiwant.com/magento-for-dev-part-5-magento-models-and-orm-basics.html
- android dialog加载中动画效果
//显示动画 dialog = new Dialog(context, R.style.loading); dialog.setContentView(R.layout.loadinglayout); ...
- 【exe4j】如何利用exe4j把java桌面程序生成exe文件
前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...
- Swift 基本运算符
前言 Swift 语言支持大部分标准 C 语言的运算符,并且改进了许多特性来使我们的代码更加规范,其中主要包含算数运算符.区间运算符.逻辑运算符.关系运算符.赋值运算符.自增自减运算符.溢出运算符等. ...
- 【struts2】值栈(前篇)
1 值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Intercept ...
- 《JAVA与模式》之装修者模式
装饰者模式 动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案. 具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而不是行为.行为来自装饰者和基础组件,或与其他 ...
- Oracle中文乱码解决办法总结
AMERICAN_AMERICA.WE8ISO8859P1,这个字符编码是西欧字符编码,对应于.Net的就是iso-8859-1字符编码,所以只需要改到系统的默认字符编码就行了. 解决方法: (1) ...