美文网首页颠覆你的Python实践
【读书笔记】_网络编程

【读书笔记】_网络编程

作者: 大婶N72 | 来源:发表于2017-03-13 23:34 被阅读20次

套接字是一种具有之前所说的“通讯端点”概念的计算机网络数据结构

1、套接字有两种,分别是基于文件型的和基于网络型的。

2、套接字地址:主机与端口

3、面向连接与无连接

3.1、面向连接的套接字,即在通讯之前一定要建立一条连接,这种通讯方式也被称为“虚电路”或“流套接字”。面向连接的通讯方式提供了顺序的,可靠的,不会重复的数据传输,而且也不会被加上数据边界。

3.1.1、实现这种连接的主要协议就是传输控制协议(即 TCP)。要创建 TCP 套接字就得在创建的时候,指定套接字类型为 SOCK_STREAM,使用TCP/IP协议。

3.2、无需建立连接就可以进行通讯,实现这种连接的主要协议就是用户数据报协议 (即 UDP)。要创建 UDP 套接字就得在创建的时候,指定套接字类型为 SOCK_DGRAM。SOCK_DGRAM 这个名字,使用UDP/IP协议。

4、python中的网络编程

4.1、socket()模块函数

使用 socket.socket()函数来创建套接字。其语法如下:

socket(socket_family, socket_type, protocol=0)

创建一个 TCP/IP 的套接字:

tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

创建一个 UDP/IP 的套接字:

udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

4.1.1、套接字对象的常用函数

套接字函数

4.2、创建一个TCP服务器

4.2.1、创建通用的TCP服务器的伪代码,如下:

ss = socket()     # 创建服务器套接字

ss.bind() # 把地址绑定到套接字上

ss.listen() # 监听连接

inf_loop: # 服务器无限循环

    cs = ss.accept() # 接受客户的连接

    comm_loop: # 通讯循环

        cs.recv()/cs.send() # 对话(接收与发送)

    cs.close() # 关闭客户套接字

ss.close() # 关闭服务器套接字(可选)

备注1:一个简单的(单线程的)服务器会调用 accept()函数等待连接的到来。默认情况下,accept()函数是阻塞式的,即程序在连接到来之前会处于挂起状态。

核心提示:创建线程来处理客户的请求

SocketServer 模块是一个基于 socket 模块的高级别的套接字通讯模块,它支持在新的线程或进。

4.2.2、TCP服务程序

TCP服务器程序

4.2.3、TCP客户端程序

TCP客户端程序

4.3、创建一个UDP服务器

4.3.1、创建一个伪代码:

ss = socket() # 创建一个服务器套接字

ss.bind() # 绑定服务器套接字

inf_loop: # 服务器无限循环

cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)

ss.close() # 关闭服务器套接字

4.3.2、创建UDP服务器

UDP服务器

4.3.3、创建UDP客户端

cs = socket() # 创建客户套接字

comm_loop: # 通讯循环

cs.sendto()/cs.recvfrom() # 对话(发送/接收)

cs.close() # 关闭客户套接字

UDP客户端

相关文章

  • 【读书笔记】_网络编程

    套接字是一种具有之前所说的“通讯端点”概念的计算机网络数据结构 1、套接字有两种,分别是基于文件型的和基于网络型的...

  • iOS网络编程读书笔记

    iOS网络编程读书笔记 Facade Tester客户端门面模式的实例(被动版本化) 被动版本化,所以硬编码URL...

  • Android 网络编程 目录

    Android 网络编程 目录 Android 网络编程1 Http协议Android 网络编程2 Okhttp缓...

  • Linux网络编程篇之ICMP协议分析及ping程序实现

    Linux网络编程系列: Linux网络编程篇之Socket编程预备知识 Linux网络编程篇之TCP协议分析及聊...

  • 《Java网络编程》读书笔记

    最近读完《Java网络编程》(第四版),有必要记录下,还是国外作者给力,内容相当翔实而且核心点分析到位,没有太多余...

  • 《Unix网络编程》读书笔记

    TCP各大问题: 1.nagle算法;2.延迟确认3.滑动窗口;4.time_wait状态;5.MSS, MTU,...

  • Netty权威指南2-读书笔记

    Netty权威指南2-读书笔记 UNIX网络编程5种I/O模型 I/O 复用模型(最大的优势是多路复用)Linux...

  • iOS关于HTTP协议和网络编程

    1.网络编程 1>什么是网络编程? 网络编程,是我们iOS程序开发者针对网络模块进行得代码编程,是作为一个资深开发...

  • 网络编程

    网络编程 网络编程: 网络编程主要用于解决计算机与计算机(手机、平板..)之间的数据传输问题。 网络编程: 不需要...

  • Objective-C高级编程读书笔记之GCD

    Objective-C高级编程读书笔记三部曲已经写完, 另外两篇如下 :Objective-C高级编程读书笔记之内...

网友评论

    本文标题:【读书笔记】_网络编程

    本文链接:https://www.haomeiwen.com/subject/bvoqnttx.html