1. socket()模块函数用法
  2.  
  3. import socket
  4. socket.socket(socket_family,socket_type,protocal=0)
  5. socket_family 可以是 AF_UNIX AF_INETsocket_type 可以是 SOCK_STREAM SOCK_DGRAMprotocol 一般不填,默认值为 0
  6.  
  7. 获取tcp/ip套接字
  8. tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  9.  
  10. 获取udp/ip套接字
  11. udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  12.  
  13. 由于 socket 模块中有太多的属性。我们在这里破例使用了'from module import *'语句。使用 'from socket import *',我们就把 socket 模块里的所有属性都带到我们的命名空间里了,这样能 大幅减短我们的代码。
  14. 例如tcpSock = socket(AF_INET, SOCK_STREAM)

socket通信流程与打电话流程类似,我们就以打电话为例来实现一个low版的套接字通信

服务端:

  1. import socket
  2.  
  3. #1、买手机
  4. phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #tcp称为流式协议,udp称为数据报协议SOCK_DGRAM
  5. # print(phone)
  6.  
  7. #2、插入/绑定手机卡
  8. # phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
  9. phone.bind(('127.0.0.1',8082))
  10.  
  11. #3、开机
  12. phone.listen(5) # 半连接池,限制的是请求数
  13.  
  14. #4、等待电话连接
  15. print('start....')
  16. conn,client_addr=phone.accept() #(三次握手建立的双向连接,(客户端的ip,端口))
  17. # print(conn)
  18. print(client_addr)
  19.  
  20. #5、通信:收\发消息
  21. while True: # 通信循环
  22. data=conn.recv(1024) #最大接收的字节数
  23. print('来自客户端的数据',data)
  24. conn.send(data.upper())
  25.  
  26. #6、挂掉电话连接
  27. conn.close()
  28.  
  29. #7、关机
  30. phone.close()

客户端:

  1. import socket
  2.  
  3. #1、买手机
  4. phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  5. print(phone)
  6. #2、拨电话
  7. phone.connect(('127.0.0.1',8082)) # 指定服务端ip和端口
  8.  
  9. #3、通信:发\收消息
  10. while True:
  11. msg=input('>>>:').strip()
  12. phone.send(msg.encode('utf-8'))
  13. # phone.send(bytes('hello',encoding='utf-8'))
  14. data=phone.recv(1024)
  15. print(data)
  16.  
  17. #4、关闭
  18. phone.close()

Python中的socket的更多相关文章

  1. python进阶---Python中的socket编程

    初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...

  2. Python中的socket网络模块

    目录 Socket 服务端(server.py) 客户端(client.py) socket中的一些常用方法 Socket 对象(内建)方法 Python Internet 模块 Python3 提供 ...

  3. Python中的socket 模块

    Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...

  4. python中的socket模块

    熟悉了一下python的socket模块,感觉还是有点好玩的,不过坑也也是不少的. 1.服务器端代码 #!/usr/bin/env python import socket HOST='192.168 ...

  5. 在python中编写socket服务端模块(二):使用poll或epoll

    在linux上编写socket服务端程序一般可以用select.poll.epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块. 使用poll方式的服务器端程序代码: i ...

  6. Python中的 socket示例

    linux send与recv函数详解   1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t ...

  7. Python中的socket网络编程(TCP/IP,UDP)讲解

    在网络编程中的一个基本组件就是套接字(socket).套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同的计算机上,通过套接字互相发送信息.套接字包括两个:服务器套 ...

  8. python中的socket服务器(多线程)

    最近在写一个客户端和服务器的项目,使用了SocketServer模块,网上大多数都是TCP连接的例子,我在这总结一个UDP. 直接贴上代码 import threadingimport SocketS ...

  9. Python中的socket编程

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序 ...

随机推荐

  1. vue之this.$route.params和this.$route.query的区别

    1.this.$route.query的使用 A.传参数: this.$router.push({          path: '/monitor',          query:{       ...

  2. curl下载安装与使用

    下载: https://curl.haxx.se/download.html 安装: 二进制安装.即解压即可. 使用 1.获取页面内容. 不加任何参数时,默认会发送GET请求来获取url内容到标准输出 ...

  3. NPM:如何配置maven npm私服

    https://help.sonatype.com/repomanager3/quick-start-guide-proxying-maven-and-npm#QuickStartGuide-Prox ...

  4. [Array] 566. Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  5. 洛谷P1368 均分纸牌(加强版) [2017年6月计划 数论14]

    P1368 均分纸牌(加强版) 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,纸牌总数必为 N 的倍数.可以在任一堆上取1张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取 ...

  6. LUOGU P1053 篝火晚会 (Noip 2015 )

    题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有 nnn 个同学,编号 ...

  7. Handling Missing Values

    1) A Simple Option: Drop Columns with Missing Values 如果这些列具有有用信息(在未丢失的位置),则在删除列时,模型将失去对此信息的访问权限. 此外, ...

  8. Linux常用命令操作详解

    https://mp.weixin.qq.com/s/IR4yy7Q0mOA_XV16R21CdQ 一:Linux下tomcat服务的启动.关闭与错误跟踪 使用PuTTy远程连接到服务器以后,通常通过 ...

  9. Mybatis - plus 配置与运用

    Mybatis - plus mybatis-plus 官方文档  1.配置 引入对应的文件包,spring boot + mybatis 需添加依赖文件如下: <dependencies> ...

  10. NOIP模拟 17.8.16

    NOIP模拟17.8.16 A 债务文件名 输入文件 输出文件 时间限制 空间限制debt.pas/c/cpp debt.in debt.out 1s 128MB[题目描述]小 G 有一群好朋友,他们 ...