IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Python网络编程2021-08-27 -> 正文阅读

[网络协议]Python网络编程2021-08-27

网络编程


TCP编程

客户端

'''
客户端:创建TCP连接时,主动发起连接的叫做客户端
服务端:接收客户端的连接
'''
import socket
#1、创建一个socket
#参数1:指定协议AF_INET或AF_INET6
#参数2:SOCK_STREAM执行可使用面向流的TCP协议
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#建立连接
#参数:是一个元组,第一个参数为要链接的服务器服务器IP地址,第二个参数为端口
sk.connect(("www.sina.com.cn", 80))

sk.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n')
#等待接收数据
data = []
while True:
    #每次接收1k数据
    tempData = sk.recv(1024)
    if tempData:
        data.append(tempData)
    else:
        break
dataStr = (b''.join(data)).decode("utf-8")
#断开连接
sk.close()
# print(dataStr)
headers, HTML = dataStr.split('\r\n\r\n', 1)
print(headers)
print(HTML)

客户端与服务器间的数据交互

client.py

import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("192.168.0.102", 8080))
while True:
    data = input("请输入给服务器发送的数据")
    client.send(data.encode("utf-8"))
    info = client.recv(1024)
    print("服务器说:", info.decode("utf-8"))

service.py

import socket
#创建一个socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定IP端口
server.bind(('192.168.0.102',8080))#ip地址,端口
#监听
server.listen(5)
print("服务器启动成功。。。。。。。。。。。。。")
#等待连接
clientSocket, clientAddress = server.accept()
print("%s----%s连接成功"%(str(clientAddress),clientAddress))
while True:
    data = clientSocket.recv(1024)
    print("客户端说:" + data.decode("utf-8"))
    sendData = input("输入返回给客户端的数据")
    clientSocket.send(sendData.encode('utf-8'))
'''
while True:
    #等待客户端连接
    clientSocket, clientAddress = server.accept()
    #启动一个线程,将当前连接的clientSocket交给线程
'''


UDP编程

客户端与服务端通信

client.py

import socket
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
    data = input("请输入数据")
    client.sendto(data.encode("utf-8"), ("192.168.0.102", 8900))
    info = client.recv(1024).decode('utf-8')
    print("服务器说:", info)

service.py

import socket
udpServer = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpServer.bind(("192.168.0.102", 8900))
while True:
    data, addr = udpServer.recvfrom(1024)
    print("客户端说:", data.decode("utf-8"))
    info = input("请输入数据")
    udpServer.sendto(info.encode("utf-8"), addr)
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2022-04-30 09:03:26  更:2022-04-30 09:04:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:43:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码