python网络编程

1.socket模块介绍

①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”。

②套接字包括两个部分:服务器套接字、客户机套接字

③一个套接字就是一个socket模块中的socket类的实例。

如:

import socket

s=socket.socket()            #socket类实例化

实例化需要3个参数:

地址族:默认是socket.AF_INET

流: 默认是socket.SOCK_STREAM

使用的协议:默认是0

对于一个普通的套接字,不需要提供任何参数。

  •  Socket类型:

  •   Socket函数:

2. socket编程思路:

  •  Tcp服务端:

  1.创建套接字,绑定套接字到本地ip与端口  (socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind())

  2.开始监听连接   (s.listen())

  3.进入循环,不断接受客户端的连接请求  (s.accept())

  4.然后接收传来的数据,并发送给对方数据  (s.sendall(), s.recv())

  5.传输完毕后,关闭套接字。   (s.close())

  •  TCP 客户端:

  1.创建套接字,连接远端地址 (socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect())

  2.连接后关送数据和接收数据  (s.sendall(), s.recv() )

  3.传输完毕后,关闭套接字  (s.close())

【实例】:

>客户端部分

import socket
import time

#编写一个客户端测试程序

s = socket.socket()
s.connect(('127.0.0.1',12306))
data = s.recv(512)
s.send('hello')
time.sleep(2)
s.close()
print '收到服务端的消息是:',data

>服务端部分
import socket

#编写一个服务端测试程序
s = socket.socket()

s.bind(('127.0.0.1',12306))
s.listen(5)

conn,address = s.accept()
print "收到客户端地址信息:",address
conn.send("ByeBye")
ra = conn.recv(512)
print "收到客户端发的消息:",ra
s.close()

3.socket其它应用 

从网络上查找主机:

import socket

print socket.gethostname()   #查找当前主机的正式名字

print socket.gethostbyname('www.baidu.com')        #将服务器名字转为数字地址

print socket.gethostbyname_ex('www.baidu.com')   #访问更多有关服务器的更多命名信息

print socket.gethostbyaddr('10.34.41.xx')               #通过ip来查看主机名

返回结果:

ll-RobotFrame
115.239.210.26

python网络编程-01的更多相关文章

  1. python网络编程01 /C/S架构|B/S架构、网络通信原理、五层协议、七层协议简述、端口映射技术

    python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述.端口映射技术 目录 python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述. ...

  2. python网络编程01

    1.什么是C/S架构? 客户端/服务器架构.实现服务端软件与客户端软件基于网络的通信. 2.互联网协议是什么?分别介绍五层协议中每一层的功能? 互联网协议是指用于互联网通信的规范.分为:osi七层.t ...

  3. Python 网络编程(二)

    Python 网络编程 上一篇博客介绍了socket的基本概念以及实现了简单的TCP和UDP的客户端.服务器程序,本篇博客主要对socket编程进行更深入的讲解 一.简化版ssh实现 这是一个极其简单 ...

  4. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  5. Python学习(22)python网络编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  6. Day07 - Python 网络编程 Socket

    1. Python 网络编程 Python 提供了两个级别访问网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  7. 《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档

    Foundations of Python Network Programing,Third Edition <python网络编程>,本书中的代码可在Github上搜索fopnp下载 本 ...

  8. Python网络编程基础pdf

    Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...

  9. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

随机推荐

  1. [重写库函数]atoi

    算法分析 1. 若字符串开头是空格,则跳过所有空格,到第一个非空格字符,如果没有,则返回0. 2. 若第一个非空格字符是符号+/-,则标记isPositive的真假,这道题还有个局限性,那就是在c++ ...

  2. C语言处理CSV文件的方法(二)

    strtok函数的使用是一个老生常谈的问题了.该函数的作用很大,争议也很大.以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证.交代一下实验环境是必要的,win7+vc6 ...

  3. leetcode Search for a Range python

    class Solution(object): def searchRange(self, nums, target): """ :type nums: List[int ...

  4. Mac Please try running this command again as root/Administrator.

    mac 终端安装程序,需要权限,出现以下提示语句: Please try running this command again as root/Administrator. 需要执行以下命令即可: s ...

  5. 中标麒麟6.0_ICE3.4.2编译+demo测试(CPP)

    (菜鸟版)确保 gcc版本4.4.6(其他版本未测试),4.8不行 一.降级GCC到4.4.6 注意:gcc g++ c++命令都为4.4.6(可用gcc -v; g++ -v; c++ -v 命令查 ...

  6. OSG事件回调

    OSG中的节点主要使用回调(CallBack)来完成用户临时.需要每帧执行的工作.根据回调功能被调用的时机划分为更新回调(Update CallBack)和人机交互时间回调(Event CallBac ...

  7. GDOI2015酱油记

    GDOI2015酱油记 今年的GDOI在北江举行,比赛前一天坐了5小时的车才到,幸好忍住了,没有在车上吐. Day 1 刚到电教楼,看完考室后,第一时间找厕所,结果发现只有一楼有厕所,坑爹我的考室在三 ...

  8. 【FZU】2152 文件系统

     Problem 2152 文件系统 Accept: 63    Submit: 126 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Probl ...

  9. mac文件权限

    如何设置文件/或文件夹权限为777 进入终端,切换到指定目录,输入以下命令,后面添加你的文件名/目录名$sudo chmod -R 777 (文件名/目录名) 或 $chmod 777 ./test. ...

  10. 响应式(css_media)

    开始研究响应式web设计,CSS3 Media Queries是入门. Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表.换句话说,其允许我们在不改变 ...