网络编程之模块的使用

socket模块的使用

1.模仿CS 架构模型

1.1简版

服务器端

import socket
server = socket.socket() #创建一个服务器对象
ip_port = (‘192.168.15.79‘,8080)#创建一个元组
server.bind(ip_port) #将服务器和ip地址进行绑定
server.listen(3)  #设置服务器可以同时监听多少个客户端
con,addr =server.accept()#接收客户端发送过来的东西,如果协商成功,就建立相应的隧道
# print(con)#两者协商通信的协议,使用的ip地址和端口号
# #<socket.socket fd=96, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=(‘192.168.15.79‘, 8080), raddr=(‘192.168.15.79‘, 57945)>
print(addr)#(‘192.168.15.79‘, 57945) 连接的客户端的地址和端口号
Client = con.recv(1024)#设置接收的最大的文件的大小,并将接收到的信息进行赋值

print(‘客户端消息:‘,Client)
con.send(b‘you are over‘)#向客户端发送相关的信息,但只能发送呢bytes类型
con.close()
server.close()

客户端

import socket
client = socket.socket()#创建客户端
Server_ip = (‘192.168.15.79‘,8080) #设置连接服务器的ip地址和端口
client.connect(Server_ip) #连接服务器
client.send(b‘cisoc‘)#连接完成后向服务端发送信息
cc = client.recv(1024) #设置接收文件的大小
print(cc)
client.close()

加强版

服务端

import socket
import time
server = socket.socket()
ip = (‘192.168.15.79‘,8080)
server.bind(ip)
server.listen(4)
con,addr = server.accept()

while 1:
    Input_server = input(‘服务器端的消息:‘).encode(‘utf-8‘)
    con.send(Input_server)
    resever_msg = con.recv(1024).decode(‘utf-8‘)
    print(resever_msg)
    a = eval(con.recv(1024).decode(‘utf-8‘))
    gg = time.localtime(a)
    print(time.strftime(‘%Y-%m-%d %H:%M:%S‘, gg))
    if Input_server == ‘bye‘.encode(‘utf-8‘):
        break

server.close()
con.close()

客户端

import socket
import time
client = socket.socket()
ip = (‘192.168.15.79‘,8080)
client.connect(ip)
while 1 :
    Resver_msg = client.recv(1024).decode(‘utf-8‘)
    print(Resver_msg)
    Input_client = input(‘客户端输入:‘).encode(‘utf-8‘)
    Time_Send = str(time.time()).encode(‘utf-8‘)

    client.send(Input_client)
    client.send(Time_Send)
    if Input_client == ‘bye‘.encode(‘utf-8‘):
        break
client.close()

原文地址:https://www.cnblogs.com/vivi0403/p/9995952.html

时间: 2024-08-02 00:59:39

网络编程之模块的使用的相关文章

Python2与Python3的区别/网络编程/socketserver模块中的多线程

一.知识点补充: 1.解释型语言和编译型语言 编译型(目前有两种解释): 先把代码编译成机器码 -> 机器寄存器去运行 :C语言 先把代码编译成XXX -> 计算机找虚拟机执行代码 -> 机器码交给计算机去执行 :C语言,JAVA,C# 解释型: 边解释边执行 2.Python中的作用域 Python中的函数是一个作用域 3.这里规定一下以后写元组的格式: v = (1,2,3,) 1.Python中函数是一个作用域 i=0 for i in range(10): pass print(

网络编程与模块相关

BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层模型 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见物理设备 详细参考: http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label4 学习socket一定要先学习互联网协议: 1.首先:本节课程的目标就是教会你如何

网络编程socket模块

套接字的地址家族(AF, Address Family)分为2种,一种是基于文件的AF_UNIX,一种是基于网络的AF_INET,:套接字的类型有2种,面向连接的套接字SOCK_STREAM和无连接的套接字SOCK_DGRAM. UDP常用的模块有3个: (1) socket([family[, type[proto]]]) (2) sendto(string,address) (3) recvfrom(bufsize[, flags]) 收发UDP数据,接收到的是data,address TC

python学习笔记8:网络编程--requests模块

python操作网络,也就是打开一个网站,或者请求一个http接口. 使用requests模块,pip install requests 安装即可. requests 模块是基于urllib模块进行开发的,urllib用起来比较麻烦:传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码.所以我直接丢弃之 一.打开一个网站 二.请求一个接口 1.key-value传参的接口 2.json传参的接口 3.要添加cookie的接口 4.要加header的接口 5.要加权限的接口

python网络编程socket模块实现ftp上传下载

本实验实现ftp上传文件下载文件功能,并具有校验文件完整性,打印进度条功能, 主要练习socket,struct模块. ftp用户文件存放在user.json文件中 user.json文件内容 {"lisi": "abcdef", "hyh": "123456"} ftp客户端脚本ftpclient.py #!/usr/bin/python # --*-- coding: utf-8 --*-- import socket i

python网络编程----requests模块

python访问网站可以用标准模块--urllib模块(这里省略),和requests(安装-pip install requests)模块,requests模块是在urllib的基础上进行的封装,比urllib模块功能更强到,易用 import json,requests #发送get请求 url = 'http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑马' req = requests.get(url) #发送get请求 print(req.t

Python网络编程—struct模块的使用

struct模块的使用 1.原理: 将一组简单数据进行打包,转换为bytes格式发送.或者将一组bytes格式数据,进行解析. 2.接口使用 Struct(fmt) 功能: 生成结构化对象 参数:fmt 定制的数据结构 st.pack(v1,v2,v3....) 功能: 将一组数据按照指定格式打包转换为bytes 参数:要打包的数据 返回值: bytes字节串 st.unpack(bytes_data) 功能: 将bytes字节串按照指定的格式解析 参数: 要解析的字节串 返回值: 解析后的内容

八. 网络编程( socketserver 模块 初级使用)

一 .socketserver 模块初级使用 ThreadingTCPServer ocketserver是标准库中的一个高级模块 socketserver可以简化创建客户端跟创建服务端的代码 socketserver 可以用于 TCP 协议 应用场景 应为tcp是一个长连接 只能保持一个人通话 但是socketserver就解决了同时多个客户端来 通话 初始化控制器类Handler[Handler是一个继承BaseRequestHandler的类Handler中的handle方法决定了每一个连

网络编程requests模块的介绍

首要要安装requests,安装命令是pip install requests 1.发送请求和传递参数_get请求方式 import requests r = requests.get(url='http://www.itwhy.org')    #最基本的GET请求 print(r.status_code)    #获取返回状态 r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'})   #带参数的GET请