
@
目录引言网络IP端口协议TCP/IP网络模型UDPTCP引言计算机网络是学习编程的基础四大件,而网络协议则是计算机网络的基础
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。
网络网络编程就是通过程序使不同主机上的软件能够通过网络进行通信
IPip是用来在网络中标记一台电脑的地址,在本地局域网内是唯一的。
端口一台电脑有一个ip,但是一台电脑上有多个软件,怎么识别到不同软件进行通信,这时就需要端口,每个软件的端口在本地主机上都是唯一的。
协议有了ip有了端口,好比商家有了你家小区的地址,单元号,但是该采用什么快递,怎么确保你收到货这些并没有确定,这时就需要商家-顾客有一个统一的规定对这些内容进行规定,这就是协议
所以,ip地址+协议+端口 三者结合才可以可以标识网络中的进程,并利用这个标识进行进程之间的通信
TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。比如
如何探测到通信目标由哪一边先发起通信使用哪种语言进行通信怎样结束通信等等都需要事先确定规则。这种规则就是协议(protocol)
TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,http,ICMP,SMTP 等都属于 TCP/IP 族内的协议。
socket(简称 套接字) 是进程间通信的一种方式,通过socket函数,我们可以指定期望的通信协议类型
函数 socket.socket 创建一个 socket,该函数带有两个参数
第二个参数指明套接口类型,主要有种类型可选:SOCK_STREAM(字节流套接口)、SOCK_DGRAM(数据报套接口)和SOCK_RAW(原始套接口)
下面是UDP客户端和服务器之间通信交互的时间线,相应的代码实现也是根据此框图进行实现
from socket import *udp_socket = socket(AF_INET, SOCK_DGRAM)dest_addr = ('192.168.123.1', 8888)send_data = input('请输入要发送的数据:')udp_socket.sendto(send_data.encode('utf-8'), dest_addr)recv_data = udp_socket.recvfrom(1024)# 接收到的数据recv_data是一个元组# 第1个元素是对方发送的数据# 第2个元素是对方的ip和端口print(recv_data[0].decode('gbk'))print(recv_data[1])udp_socket.close()TCPTCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议
TCP通信需要经过创建连接、数据传送、终止连接三个步骤
下面是TCP客户端和服务器之间通信交互的时间线,相应的代码实现也是根据此框图进行实现
from socket import *tcp_clIEnt = socket(AF_INET, SOCK_DGRAM)server_ip = input('input server ip:')server_port = input('input server port:')tcp_clIEnt.connect((server_ip,server_port))send_data = input('input send data:')tcp_clIEnt.send(send_data)tcp_clIEnt.send(send_data.encode("gbk"))recvData = tcp_clIEnt.recv(1024)print('接收到的数据为:', recvData.decode('gbk'))tcp_clIEnt.close() 总结 以上是内存溢出为你收集整理的Python学习-网络编程全部内容,希望文章能够帮你解决Python学习-网络编程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)