Python3-socket模块-低级网络接口
Python3中的socket模块提供了对访问套接字(socket)的接口
socket可以理解为是一个管道,通过这个管道可以使两个不同的程序通过网络进行通信,在Python中的scoket()函数可以返回socket对象,这个对象的方法实现了不同的套接字系统调用
服务端:
1.使用socket()函数返回一个socket对象 sk_server
2.将sk_server绑定到socket协议簇中的一个协议,例如: socket.AF_INET(IPv4),IPv4也是socket默认的协议
3.开启服务监听客户端的连接请求
4.接受连接
5.收发数据
6.关闭连接
客户端:
1.使用socket()函数返回一个socket对象 sk_client
2.发送连接请求到 sk_server
3.收发消息
4.关闭连接
import socket HOST = "127.0.0.1" # IP地址
PORT = 55555 # 端口号
with socket.socket() as sk_server:
sk_server.bind((HOST, PORT,)) # 将socket绑定到IP地址和端口号
sk_server.listen(3) # 启用服务以监听连接,参数是一个数字,表示最大连接数
while True:
conn, address = sk_server.accept() # 接收一个连接,返回的是一个元组
with conn:
while True:
try:
data = conn.recv(1024) # 接受这个连接发送过来的数据
print(str(data, "utf-8")) # 展示数据
conn.send(bytes("got it!", "utf-8")) # 向这个连接发送响应消息
# if not data: # Linux recv()无数据则为空
# break
except WindowsError as ex: # Windows recv()无数据则抛异常
# print(ex)
break
socket服务端
import socket HOST = "127.0.0.1" # 远程地址,因为是一台机器上测试,都写的本机
PORT = 55555 while True:
with socket.socket() as sk_client:
sk_client.connect((HOST, PORT, )) # 连接服务器端的socket
cont = input(">>>")
sk_client.send(bytes(cont, "utf-8")) # 发送数据
response = sk_client.recv(1024) # 接受数据
print(str(response, "utf-8"))
socket客户端
参考资料
http://python.usyiyi.cn/translate/python_352/library/socket.html
Python3-socket模块-低级网络接口的更多相关文章
- Python3 socket网络编程(一)
Socket的定义 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了建 ...
- [转]python3之模块psutil系统性能信息
转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...
- 01: socket模块
网络编程其他篇 目录: 1.1 socket理论部分 1.2 socket处理单个连接 和 同时接受多个连接 1.3 socket实现远程执行命令,下载文件 1.4 通过socket实现简单的ssh ...
- python基础===socket模块的讲解(转)
一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web ...
- socket编程--socket模块介绍
socket也称作'套接字,用于描述IP地址和端口,是一个通信的终点. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写] ...
- 第五十三节,socket模块介绍,socket单线程通讯
socket单线程通讯,只能单线程通讯,不能并发 socket是基于(TCP.UDP.IP)的通讯.也叫做套接字 通讯过程由服务端的socket处理信息发送,由客户端的socket处理信息接收. so ...
- python实战第一天-socket模块练习
操作系统 Ubuntu 15.10 IDE & editor JetBrains PyCharm 5.0.2 ipython3 Python版本 python-3.4.3 导入socket模块 ...
- Python网络编程(socket模块、缓冲区、http协议)
网络的概念:主机 端口 IP 协议 服务器: localhost/127.0.0.1 客户端: 只是在本机启动客户端,用127.0.0.1访问 服务器: 0.0.0.0 客户端: ...
- socket模块实现基于UDP聊天模拟程序;socketserver模块实现服务端 socket客户端代码示例
socket模块 serSocket.setblocking(False) 设置为非阻塞: #coding=utf-8 from socket import * import time # 用来存储所 ...
随机推荐
- Chisel3 - 复合数据类型
https://mp.weixin.qq.com/s/rXYqiZKuBpAYL8R94zxgRA Chisel允许用户根据需要,把基本数据类型组合成为复合数据类型使用.如C语言里面的结构体,这样 ...
- Java实现 蓝桥杯VIP 基础练习 字符串对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- Java实现 蓝桥杯VIP 算法提高 P0402
算法提高 P0402 时间限制:1.0s 内存限制:256.0MB 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前 ...
- Java实现 LeetCode 90 子集 II(二)
90. 子集 II 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: [ [2], [1], [ ...
- Java实现LeetCode 110. Balanced Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ...
- Java实现字符串的旋转
1 问题描述 给定一个字符串,要求将字符串前面的若干个字符移到字符串的尾部.例如,将字符串"abcdef"的前3个字符'a'.'b'和'c'移到字符串的尾部,那么原字符串将变成&q ...
- java实现生日相同概率
假设所有年份都只有365天,求n个人中,出现生日相同的概率. 输入n 输出相同的概率(保留3位有效数字即可) import java.util.*; public class X { // n个人出现 ...
- java实现迷宫走法
** 迷宫走法** 迷宫问题 对于走迷宫,人们提出过很多计算机上的解法.深度优先搜索.广度优先搜索是使用最广的方法.生活中,人们更愿意使用"紧贴墙壁,靠右行走"的简单规则. 下面的 ...
- 2018年全国多校算法寒假训练营练习比赛(第二场)H-了断局
题目描述 既然是了断局了,大家就随便玩玩数字呗.已知一个数列前十项分别是{0, 1, 1, 2, 4, 7, 13, 24, 44, 81},小G不满足呀:我要更多的数!!!不给就不让你们玩了.小G会 ...
- App接口设计之token的php实现
为了保证移动端和服务端数据传输相对安全,需要对接口进行加密传输. 一.ttoken的设计目的: 因为APP端没有和PC端一样的session机制,所以无法判断用户是否登陆,以及无法保持用户状态,所以 ...