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的更多相关文章

  1. VC++学习之网络编程中的套接字

    VC++学习之网络编程中的套接字 套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问 ...

  2. Python学习day09 - Python进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  3. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  4. pythonl练习笔记——PythonNet 套接字socket

    1 套接字socket 1.1 套接字概述 套接字,一种网络通讯工具:用于进行网络间的通信,是一种特殊文件类型, 套接字,是一个通信链的句柄,用于描述IP地址和端口,实现向网络发出请求或应答网络请求. ...

  5. 面向对象之套接字(socket)和黏包

    一丶套接字(socket) tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 基于UDP协议的socket server端: import socket udp_sk = socke ...

  6. 传输模型,网络层次划分,三次握手,四次挥手,IP与端口,套接字socket

    了解套接字之前,需要先了解基本的传输模型 其次,还需要了解网络的七层划分和四层结构 在python中,数据链路层相当于硬件层,python不需要了解,只用在传输层进行学习就足够了 其中,传输层分为TC ...

  7. 套接字socket 的地址族和类型、工作原理、创建过程

    注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...

  8. 网络编程 套接字socket TCP UDP

    网络编程与套接字 网络编程 网络编程是什么: ​ 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 ​ 编写基于网络的应用程序的过程序称之为网络编程. 网络编程最主要的工 ...

  9. Java套接字Socket编程--TCP参数

    在Java的Socket中,主要包含了以下可设置的TCP参数. 属性 说明 默认值 SO_TIMEOUT 对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长 ...

随机推荐

  1. Fiddler 捕获 nodejs 模拟的http请求

    1.设置Fiddler Tools->Options-> Connections Allow remote computers to connect: 2.nodejs 请求有多种 2.1 ...

  2. git协议

    常用三种协议:ssh, git, http ssh协议: 使用ssh传输,安全,可授权,需要用ssh登录,一般使用添加秘钥的方式.搭建方便. git协议: 使用git-daemon监听9418端口,配 ...

  3. centos云服务器安装Python3记录

    题记 购买了一个月的服务器和公网ip,计划用Python与Nginx写一个web服务,于是踏上了漫漫的摸索之路. 行程 步骤 1.本地ssh连接. 2.mkdir /usr/local/python3 ...

  4. js验证input输入正整数 和 输入的金额小数点后保留两位(PC端键盘输入)

    // 验证开头不为零的正整数 WST.zhengZhengShuIn = function (className){ var rex = /^[1-9]{1}[0-9]*$/;//正整数 $(&quo ...

  5. geoserver 问题解决

    GeoServer的8080端口被占用了怎么办?如何修改GeoServer的端口? GeoServer管理页面的登陆地址正常情况下为:http://localhost:8080/geoserver/w ...

  6. Mockplus教程:分分钟搞定APP首页原型设计

    Mockplus是一款快速原型设计工具,支持包括APP原型在内的多种原型与线框图设计.除了快速,Mockplus广受欢迎更因为它极低的上手门槛.今天小编就为大家展示如何用Mockplus在3分钟内完成 ...

  7. httpclient之基本类

    HttpHost类  主机类  主要属性有域名和端口. HttpRoute类  路由类  主要属性有targetHost(目标主要).proxyChain[]代理链 RouteTracker类  和H ...

  8. Spark实践 -- 性能优化基础

    性能调优相关的原理讲解.经验总结: 掌握一整套Spark企业级性能调优解决方案:而不只是简单的一些性能调优技巧. 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表 ...

  9. kafka系列 -- 多线程消费者实现

    看了一下kafka,然后写了消费Kafka数据的代码.感觉自己功力还是不够. 不能随心所欲地操作数据,数据结构没学好,spark的RDD操作没学好. 不能很好地组织代码结构,设计模式没学好,面向对象思 ...

  10. Kubernetes web界面kubernetes-dashboard安装

    本文讲述的是如何部署K8s的web UI,前提是已经有一个k8s集群后,按照如下步骤进行即可.(如下步骤都是在master节点上进行操作) 1.下载kubernetes-dashboard.yaml文 ...