网络编程 基础 基于socket的tcp和udp连接
网络开发的框架
C/S B/S 架构
- 程序都是bs架构的程序(b指浏览器,s指服务器)
- c(client)是客户端,s(server)是服务器
- bs架构是cs架构的一种
- 未来的趋势,
- pc端bs架构,统一了程序的入口
- 手机端 微信公众号,统一了程序的入口
socket
起一个tcp协议的socket进行通信
# tcp协议 #客户端 # import socket # rev = socket.socket() # # rev.bind(("ip地址",端口号)) #端口号一般取8000- 9999 # rev.listen() #开启服务端 # # msg,addr = rev.accept() #三次握手过程,显示连接服务端的用户端地址 # msg.send("你好".encode("utf-8")) #给用户端发消息,需要进行编码 # mv = msg.recv(1024) #接受用户端回的消息,限制一次接受的最大字节 # print(mv.decode("utf-8")) #打印接受到的消息,需要解码 # msg.close() #关闭用户端的连接 # rev.close() #关闭服务端
# 用户端 # import socket # cli = socket.socket() # cli.connect(("ip地址",端口号)) #连接服务端 # msg = cli.recv(1024) #接收信息 # print(msg.decode("utf-8")) #打印消息 # mv = input("》》》》》:") # cli.send(mv.encode("utf-8")) #发消息 # cli.close() #关闭用户端
利用端口传输视频
import socket rev = socket.socket() rev.bind(("127.0.0.1",8989)) rev.listen()conn,addr = rev.accept() filname = conn.recv(1024)with open(filname.decode("utf-8"),"wb") as f:while True:content = conn.recv(1024)if content == b"ok":breakf.write(content) print("接收完毕") conn.close() rev.close()import time import os import socket cli = socket.socket() cli.connect(("127.0.0.1",8989)) cli.send("file".encode("utf-8")) time.sleep(0.1) size = os.path.getsize("file") with open("file","rb") as f:while size:content = f.read(1024)size -= len(content)cli.send(content)cli.send(b"ok")print("传输完毕")cli.close()
起一个udp协议的socket进行通信
# udp协议 # import socket # rev = socket.socket(type=socket.SOCK_DGRAM) # rev.bind(("ip地址",端口号)) # # msg,addr = rev.recvfrom(1024) #接收到的消息 # print(msg.decode("utf-8")) # rev.sendto("你好".encode("utf-8",addr)) #发消息,需要对方的ip地址 # rev.close() #关闭端口# import socket # cli = socket.socket(type=socket.SOCK_DGRAM) # cli.sendto("信息".encode("utf-8"),("ip地址",端口号)) #发消息 # mv,addr = cli.recvfrom(1024) #接收信息和ip地址 # print(mv.decode("utf-8")) #打印信息 # cli.close() #关闭端口
转载于:https://www.cnblogs.com/yuncong/p/9642633.html
网络编程 基础 基于socket的tcp和udp连接相关推荐
- socket recv 服务端阻塞 python_网络编程(基于socket编程)
网络编程(基于socket编程) socket套接字:应用程序通常通过socket"套接字"向网络发送请求或应答网络请求,是主机间或同一计算机中的进程间相互通讯 socket是介于 ...
- 网络编程(基于socket接口技术的进程间通信)接上一篇文章补充
目录 一.网络编程(基于socket接口技术) 1.基于TCP协议的网络通信 编程模型: 2.基于UDP通信协议的网络通信 编程模型: 3.新增函数: 大小端数据转换函数: ip地址转换函数: TCP ...
- 看完之后保证你对socket编程步骤胸有成竹。 C++ Socket网络编程基础详解(TCP)
C++ Socket网络编程基础详解(TCP版) 网络编程,就是编写程序使得两台计算机交换数据,其实从本质上来讲,网络编程最终所实现的功能,和我们文件的输入输出很相似,只是文件输入输出的对象 ...
- 计算机网络(二) | 网络编程基础、Socket套接字、UDP和TCP套接字编程
目录 一.网络编程基础 1.1 为什么需要网络编程 1.2 什么是网络编程 1.3 网络编程中的基本概念 二.Socket套接字 2.1 概念 2.2 分类 2.3 Java数据报套接字通信模型 2. ...
- Java基础学习总结:网络编程之(四)TCP与UDP的区别及常见的网络协议(转)
TCP和UDP的区别 原文:https://blog.csdn.net/li_ning_/article/details/52117463 1.TCP与UDP基本区别 基于连接与无连接 TCP要求系统 ...
- 【Java 网络编程】网络通信原理、TCP、UDP 回显服务
一.网络发展历史 互联网从何而来? 这要追溯到上个世纪 50 - 60 年代,当时正逢美苏争霸冷战,核武器给战争双方提供了足够的威慑力,想要保全自己,就要保证自己的反制手段是有效的. 如何保证能够反击 ...
- 网络编程 数据报是什么?TCP、UDP数据报结构
数据报 数据报是通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系.数据报是完备的.独立的数据实体,该实体携带要从源计算机传递到目 ...
- js监听select值变化_网络编程——C++实现socket通信(TCP)高并发之select模式
相关函数: 服务端: socket() bind() listen() FD_ZERO()等辅助函数 select() 高并发select模式 accept() read() 或 recv()等 wr ...
- 【JavaEE】网络编程基础之Socket套接字
✨哈喽,进来的小伙伴们,你们好耶!✨
- Linux Linux函数 Linux聊天程序 基于socket的TCP(有连接的)聊天程序
/*在此只付上头文件,如需要去我的资源下载. http://download.csdn.net/detail/ta893115871/4322905 O(∩_∩)O谢谢 暂时实现的功能有: 1.群聊 ...
最新文章
- Microbiome:城市海滩和污水中抗生素抗性组研究
- Apache Kafka-初体验Kafka(04)-Java客户端操作Kafka
- Spring boot登录错误提示
- 如何使用计算机改进生产线,第四章 计算机生产管理.doc
- C++STL(set……)
- SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战
- python中使用函数的优点_在python中使用自定义初始化函数而不是`__init__`的好处...
- eclipse中jsp页面 page报错问题
- Python运维开发工程师养成记
- 专访全面智能CTO陈章:想法只有在技术落地的那一刻才有撬动地球的能力
- 【LabVIEW】基于LabVIEW的俄罗斯方块小游戏
- MacBook怎样退出apple id
- 如何使用云桌面进行开发?
- 活体检测 Domain Generalization via Shuffled Style Assembly for Face Anti-Spoofing 论文学习记录
- IDEA 快捷键 代码上移一行 下移一行 快捷键 try catch 块 快捷键
- 北邮php,周琳娜-北京邮电大学网络空间安全学院
- 全面解析四大主流音频技术
- 实现NRF52832蓝牙DFU无线升级
- BiocManager安装R包解决下载速度太慢的问题
- oracle中的index函数,Oracle中的索引详解(整理)