python: tcp/ip学习、端口、udp和tcp的应用

本文介绍了网络通信的基本概念,包括端口的作用及其数值范围,IP地址的分类及作用,以及私有IP与公用IP的区别。此外还讲解了不同电脑间进程通信的实现方式,包括使用socket进行TCP和UDP通信的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 在进程中为每个系统定义了一个数字,就是端口,知道数据发送到那个程序中;ip决定发送到哪个电脑。因为不同的电脑程序所在的进程号不同,不能通过进程号来发送。

通过端口进入程序所在的进程。

2、端口号的数值0-65535

3、知名端口号0~1023和动态端口号

 80端口网站:HTTP

ipv4:

端口号用来区分不同的应用程序。

4、ip地址:在网络上标定一个电脑,地址: 网络地址和主机地址(即网络号和主机号),网络号相同说明在同一个网络中,用后面的主机号来区分网络中的电脑。

A类IP地址:网络号占一个字节,主机号占三个字节;B类IP地址:网络号占二个字节,主机号占二个字节;C类IP地址:网络号占三个字节,主机号占一个字节1-254,0和255无法使用,为0时表示当前网络号;为255时表示广播地址

虚拟机也占一个IP地址。

在一个局域网中不能有两个相同的ip地址。

5、有一部分IP地址是私有IP:只能在局域网中能被访问到

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

一部分IP地址是公用IP:在网络中可以访问到到。

6、不同电脑中的进程之间的通信是通过socket

使用:创建socket

import socket

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)://第一个参数是满足IP地址协议,第一个参数创建的socket完成TCP协议

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)://第一个参数是满足IP地址协议,第一个参数创建的socket完成UDP协议

7、现行IPMSG为版本1,基本格式如下:

版本号:包编号:发送者姓名:发送者机器名:命令名:附加信息

1:123223:user:machine:32:have a try

8、应用层也有自己的协议:比如QQ有自己的协议

 下一层就是传输层:TCP/UDP

from socket import *

udpSocket=socket(AF_INET,SOCK_DGRAM)

#使用udp发送的数据,在每一次的时候都需要写上接收方的IP和port
udpSocket.sendto("hha",("192.168.80.88",8080))
udpSocket.sendto("hha111",("192.168.80.88",8080))


相同 的程序每一次运行都会动态的分配一个端口号(动态端口号>1024),在同一个OS(操作系统中),端口不允许相同,即如果一个端口已经被使用,那么在这个进程释放这个端口之前,其他进程不可以使用这个端口。

因为端口来区分一个进程, 如果端口相同了,就无法将数据发送给正确的进程。因此端口号不可以相同。



为了解决同一个程序每次运行有不同端口号的问题,实行绑定:

绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配。参数为IP地址和端口号,IP一般不用写,表示本机的任何一个IP

#endcoding=utf-8
from socket import *

udpSocket=socket(AF_INET,SOCK_DGRAM)

udpSocket.bind(("",7788))  #参数是元组的形式
#使用udp发送的数据,在每一次的时候都需要写上接收方的IP和port
udpSocket.sendto("hha",("192.168.80.88",8080))
udpSocket.sendto("hha111",("192.168.80.88",8080))


接收消息:


。。。未完待续


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值