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. RedisTemplate Redis 操作

    stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向r ...

  2. testng + Ignore 忽略测试方法

    使用testng的时候,有时候会忽略掉某些测试方法,暂时不跑,简单整理一下一些方法.转载还请说明下 1.使用@Test(enable=false)方法 @Feature("查询") ...

  3. Web标准:二、一列布局

    知识点: 1.一列固定宽度 2.一列固定宽度居中 3.一列自适应宽度 4.一列自适应宽度居中 5.一列二至多块布局   1)一列固定宽度 下图是定义了一个高300px,宽400px,颜色是#99FFc ...

  4. poj3616(LIS简单变式)

    题目链接:http://poj.org/problem?id=3616 思路: 我的第一反应是背包,因为每个interval要么选择要么不选,后来发现状态方程很难写出来.后来想一想发现就是LIS的简单 ...

  5. 4-js 函数

    总是有些奇奇怪怪的问题: <div> <p class="productStatus"> <span>成交量 <em>${goods ...

  6. curl学习(实例不断总结)

    1.先来一个简单的案例,请求http协议的网站 // 初始化一个 cURL 对象 $curl = curl_init(); // 设置你需要抓取的URL curl_setopt($curl, CURL ...

  7. Hadoop新手学习指导

    对于我们新手入门学习hadoop大数据存储的朋友来说,首先了解一下云计算和云计算技术是有必要的.下面先是介绍云计算和云计算技术的:              云计算,是一种基于互联网的计算方式,通过这 ...

  8. discuz的css处理机制

    common/common.css 是一个通用的css文件. common/module.css 是某个功能模块使用的css文件.   module.css中,利用特殊语法: /** 标识 **/ c ...

  9. [Eclipse]Eclipse里对XML进行注释的快捷键

    eclipse中编辑java或C/C++文件时,注释的快捷键均为 "CTRL + / ",编辑xml文件时,该快捷键无效. eclipse 针对 XML 注释:CTRL + SHI ...

  10. 4. Configure maven in Spring Tool Suite

    First of all, you need to copy the folder named like: Choose Window->Preferences->Maven->Us ...