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来说表示读数据最长 ...
随机推荐
- IE6、IE7、Firefox中margin问题及input解决办法
margin不居中的问题 .div{ margin:10px;/*ff*/ *margin:15px;/*ie7*/ _margin:15px;/*ie6*/ 尺寸会变为正常的两倍,按道理应为5px ...
- hdoj1003 DP
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- np.frombuffer()
numpy.frombuffer numpy.frombuffer(buffer, dtype=float, count=-1, offset=0) Interpret a buffer as a 1 ...
- 72. Edit Distance (String; DP)
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...
- 识别名人 · Find the Celebrity
[抄题]: 假设你和 n 个人在一个聚会中(标记为 0 到 n - 1),其中可能存在一个名人.名人的定义是所有其他 n - 1 人都认识他/她,但他/她不知道任何一个.现在你想要找出这个名人是谁或者 ...
- OC线程操作-GCD介绍
1. GCD介绍 1.11.2 1.3 异步具备开启能力但是不是 一定可以开启 1.4 1.5 67. 8.
- 让php支持多线程,win下安装pthreads
1.检查PHP版本是否支持线程安全 在phpinfo()的显示页中,搜索Thread Safety,如果是enabled,则PHP版本是线程安全的. 2.在http://windows.php.net ...
- vi编辑时出现E325:ATTENTION
我们用vi编辑文件时,系统会提示E325:ATTENTION. 这是由于在编辑该文件的时候异常退出了,因为vi在编辑文件时会创建一个交换文件swap file以保证文件的安全性. 但是每次打开文件时都 ...
- VC字符串处理整理
场景: 1.在存储数据时有时接口需要合并字符串值,并以某些特殊字符来合并部分,到需要的时候再分割它.如一些数值,人名等. 2.C++有strtok,stringstream和find函数来实现分割.可 ...
- Luogu 3953[NOIP2017] 逛公园 堆优化dijkstra + 记忆化搜索
题解 首先肯定是要求出单源最短路的,我用了堆优化dijikstra ,复杂度 mlogm,值得拥有!(只不过我在定义优先队列时把greater 打成了 less调了好久 然后我们就求出了$i$到源点的 ...