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 ...
随机推荐
- 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders
Exercise:Learning color features with Sparse Autoencoders 习题链接:Exercise:Learning color features with ...
- Git的图形化工具使用教程
虽然感觉并没有什么暖用,但姑且还是写出来留作纪念好了 Git这种分布式版本控制系统最适合的就是单枪匹马搞开发的选手,不需要服务器,下载个git和图形工具,网速快十分钟就能搞定开始愉快的开发工作.我在搭 ...
- React(0.13) 利用componentDidMount 方法设置一个定时器
<html> <head> <title>hello world React.js</title> <script src="build ...
- React(0.13) 定义一个input组件,使其输入的值转为大写
<!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...
- mysql基本语句集合
一.概述 1.删除字段 alter table {table_name} drop column {column_name}; 2.添加字段 alter table {table_name} Add ...
- openstack网络基础
一.概述 网络虚拟化是云计算的最重要部分,本文详细讲述 Linux 抽象出来的各种网络设备的原理.用法.数据流向.您通过此文,能够知道如何使用 Linux 的基础网络设备进行配置以达到特定的目的,分析 ...
- 【java】Java泛型
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...
- iOS-获取当前View所在的控制器
用一个分类,具体: .h #import <UIKit/UIKit.h> @interface UIView (CurrentController) /** 获取当前View的控制器对象 ...
- 【struts2】值栈(后篇)
在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈. 1 ActionContext的基本使用 1.1 如何获取? 要获取ActionContext有两个基本的方法,如果在 ...
- 基于matplotlib的数据可视化 - 饼状图pie
绘制饼状图的基本语法 创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定: 若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比.注意,该种情况会出现 ...