Python学习-15.Python的中的套接字socket
Python应用最广泛的要数web方面了。因此,socket显得十分重要。
要使用socket,必须引入socket模块,因此在Python脚本开头先写入
import socket
学过socket的都知道,就是客户端和服务端的通信。
因此新建client.py和server.py文件。
先编写server.py文件:
import socket # 创建 TCP 协议的套接字。
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接的 ip 地址。
host = '127.0.0.1'
# 目标端口。
port = 12345
address = ('127.0.0.1',12345)
# 监听目标地址上的端口。
server.bind(address)
# 最多同时接受 1 个连接请求。
server.listen(1) while True:
# 接受连接。若没有连接则阻塞进程
# server.accept() 返回的是一个 tuple。
# clientSocket, clientAddress = server.accept()
# 等价于
# temp = server.accept()
# clientSocket = temp[0]
# clientAddress = temp[1]
clientSocket,clientAddress = server.accept()
# 接收并进行解码。1024 指的是缓冲区的大小。
print(clientSocket.recv(1024).decode())
# 将字符串编码并发回客户端。
# 等价于
# clientSocket.sendall(b'reply')
clientSocket.sendall('reply'.encode())
# 关闭与客户端的连接。
clientSocket.close()
else:
# 关闭服务端监听端口的 socket。
server.close()
接下来编写client.py文件:
import socket # 创建 TCP 协议的套接字。
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接目标端口,连接失败将引发 ConnectionRefusedError 类型的异常。
client.connect(('127.0.0.1',12345))
# 将字符串编码后发送至服务端。
# 等价于
# client.send(b'hello')
client.send('hello'.encode())
# 接收服务端的内容并解码输出。
print(client.recv(1024).decode())
# 关闭与服务端连接的套接字。
client.close()
编写完毕后,就可以运行了。
在server.py文件右键运行,接着在client.py文件右键再运行即可。
运行效果:

Python学习-15.Python的中的套接字socket的更多相关文章
- VC++学习之网络编程中的套接字
VC++学习之网络编程中的套接字 套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问 ...
- Python学习day09 - Python进阶(3)
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习day05 - Python基础(3) 格式化输出和基本运算符
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- pythonl练习笔记——PythonNet 套接字socket
1 套接字socket 1.1 套接字概述 套接字,一种网络通讯工具:用于进行网络间的通信,是一种特殊文件类型, 套接字,是一个通信链的句柄,用于描述IP地址和端口,实现向网络发出请求或应答网络请求. ...
- 面向对象之套接字(socket)和黏包
一丶套接字(socket) tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 基于UDP协议的socket server端: import socket udp_sk = socke ...
- 传输模型,网络层次划分,三次握手,四次挥手,IP与端口,套接字socket
了解套接字之前,需要先了解基本的传输模型 其次,还需要了解网络的七层划分和四层结构 在python中,数据链路层相当于硬件层,python不需要了解,只用在传输层进行学习就足够了 其中,传输层分为TC ...
- 套接字socket 的地址族和类型、工作原理、创建过程
注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...
- 网络编程 套接字socket TCP UDP
网络编程与套接字 网络编程 网络编程是什么: 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 编写基于网络的应用程序的过程序称之为网络编程. 网络编程最主要的工 ...
- Java套接字Socket编程--TCP参数
在Java的Socket中,主要包含了以下可设置的TCP参数. 属性 说明 默认值 SO_TIMEOUT 对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长 ...
随机推荐
- zoj1004-Anagrams by Stack 【栈 dfs】
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4 Anagrams by Stack Time Limit: 2 Seconds ...
- 14- Servlet.service() for servlet [mvc-dispatcher] in context with path [/collegeservice] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root caus
有的service没有依赖注入:
- 基于Jenkins的持续集成CI
CI(continuous integration)持续集成 一次构建:可能包含编译,测试,审查和部署,以及其他一些事情,一次构建就是将源代码放在一起,并验证软件是否可以作为一个一致的单元运行的过程. ...
- 使用threejs点云秀出酷炫的图片效果(一)
来源:http://blog.csdn.net/srk19960903/article/details/70214556 使用了点云拼凑出了照片轮播十分有趣,于是用threejs实现这个效果. 首先这 ...
- BZOJ4407 于神之怒加强版 - 莫比乌斯反演
题解 非常裸的莫比乌斯反演. 但是反演完还需要快速计算一个积性函数(我直接用$nlogn$卷积被TLE了 推荐一个博客 我也不想再写一遍了 代码 #include<cstring> #in ...
- VisulaVM 性能:分析 JVM 性能的免费工具
VisualVM是一个集成多个JDK命令行工具的可视化工具.可以作为Java应用程序性能分析和运行监控的工具.开发人员可以利用它来监控.分 析线程信息,浏览内存堆数据.系统管理员可以利用它来监测.控制 ...
- ShowMsg函数
ShowMsg():显示提示信息,跳转到相应页面 例子: ShowMsg(,);
- 记录如何用abd,用电脑输出手机操作信号
0.http://www.wmzhe.com/soft-39913.html 去这里下载最新版的adb.旧版本很多不好使.一定最新的. 1.用豌豆荚装好驱动 2.开启usb调试.具体方法可以百度到 3 ...
- 常见sql for oracle
select to_char(current_timestamp,'yyyy-mm-dd hh24:mi:ss.ff3'),to_char(sysdate,'yyyy-mm-dd hh24:mi:ss ...
- servlet-servletContext网站计数器
1.在项目中新建文件夹新建文件nums.txt 2.在web.xml文件配置 <servlet> <description>This is the descriptio ...