Python中的socket
- socket()模块函数用法
- import socket
- socket.socket(socket_family,socket_type,protocal=0)
- socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。protocol 一般不填,默认值为 0。
- 获取tcp/ip套接字
- tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- 获取udp/ip套接字
- udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- 由于 socket 模块中有太多的属性。我们在这里破例使用了'from module import *'语句。使用 'from socket import *',我们就把 socket 模块里的所有属性都带到我们的命名空间里了,这样能 大幅减短我们的代码。
- 例如tcpSock = socket(AF_INET, SOCK_STREAM)
socket通信流程与打电话流程类似,我们就以打电话为例来实现一个low版的套接字通信
服务端:
- import socket
- #1、买手机
- phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #tcp称为流式协议,udp称为数据报协议SOCK_DGRAM
- # print(phone)
- #2、插入/绑定手机卡
- # phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
- phone.bind(('127.0.0.1',8082))
- #3、开机
- phone.listen(5) # 半连接池,限制的是请求数
- #4、等待电话连接
- print('start....')
- conn,client_addr=phone.accept() #(三次握手建立的双向连接,(客户端的ip,端口))
- # print(conn)
- print(client_addr)
- #5、通信:收\发消息
- while True: # 通信循环
- data=conn.recv(1024) #最大接收的字节数
- print('来自客户端的数据',data)
- conn.send(data.upper())
- #6、挂掉电话连接
- conn.close()
- #7、关机
- phone.close()
客户端:
- import socket
- #1、买手机
- phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- print(phone)
- #2、拨电话
- phone.connect(('127.0.0.1',8082)) # 指定服务端ip和端口
- #3、通信:发\收消息
- while True:
- msg=input('>>>:').strip()
- phone.send(msg.encode('utf-8'))
- # phone.send(bytes('hello',encoding='utf-8'))
- data=phone.recv(1024)
- print(data)
- #4、关闭
- phone.close()
Python中的socket的更多相关文章
- python进阶---Python中的socket编程
初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...
- Python中的socket网络模块
目录 Socket 服务端(server.py) 客户端(client.py) socket中的一些常用方法 Socket 对象(内建)方法 Python Internet 模块 Python3 提供 ...
- Python中的socket 模块
Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...
- python中的socket模块
熟悉了一下python的socket模块,感觉还是有点好玩的,不过坑也也是不少的. 1.服务器端代码 #!/usr/bin/env python import socket HOST='192.168 ...
- 在python中编写socket服务端模块(二):使用poll或epoll
在linux上编写socket服务端程序一般可以用select.poll.epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块. 使用poll方式的服务器端程序代码: i ...
- Python中的 socket示例
linux send与recv函数详解 1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t ...
- Python中的socket网络编程(TCP/IP,UDP)讲解
在网络编程中的一个基本组件就是套接字(socket).套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同的计算机上,通过套接字互相发送信息.套接字包括两个:服务器套 ...
- python中的socket服务器(多线程)
最近在写一个客户端和服务器的项目,使用了SocketServer模块,网上大多数都是TCP连接的例子,我在这总结一个UDP. 直接贴上代码 import threadingimport SocketS ...
- Python中的socket编程
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序 ...
随机推荐
- vue之this.$route.params和this.$route.query的区别
1.this.$route.query的使用 A.传参数: this.$router.push({ path: '/monitor', query:{ ...
- curl下载安装与使用
下载: https://curl.haxx.se/download.html 安装: 二进制安装.即解压即可. 使用 1.获取页面内容. 不加任何参数时,默认会发送GET请求来获取url内容到标准输出 ...
- NPM:如何配置maven npm私服
https://help.sonatype.com/repomanager3/quick-start-guide-proxying-maven-and-npm#QuickStartGuide-Prox ...
- [Array] 566. Reshape the Matrix
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...
- 洛谷P1368 均分纸牌(加强版) [2017年6月计划 数论14]
P1368 均分纸牌(加强版) 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,纸牌总数必为 N 的倍数.可以在任一堆上取1张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取 ...
- LUOGU P1053 篝火晚会 (Noip 2015 )
题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有 nnn 个同学,编号 ...
- Handling Missing Values
1) A Simple Option: Drop Columns with Missing Values 如果这些列具有有用信息(在未丢失的位置),则在删除列时,模型将失去对此信息的访问权限. 此外, ...
- Linux常用命令操作详解
https://mp.weixin.qq.com/s/IR4yy7Q0mOA_XV16R21CdQ 一:Linux下tomcat服务的启动.关闭与错误跟踪 使用PuTTy远程连接到服务器以后,通常通过 ...
- Mybatis - plus 配置与运用
Mybatis - plus mybatis-plus 官方文档 1.配置 引入对应的文件包,spring boot + mybatis 需添加依赖文件如下: <dependencies> ...
- NOIP模拟 17.8.16
NOIP模拟17.8.16 A 债务文件名 输入文件 输出文件 时间限制 空间限制debt.pas/c/cpp debt.in debt.out 1s 128MB[题目描述]小 G 有一群好朋友,他们 ...