4G模块TCP/IP连接GPRS发数据问题

测试4G模块遇到的问题,困扰了很长时间,一直无法解决,根据4G模块的使用说明手册进行TCP连接的测试,一直在设置IP地址处出现问题,不能进行连接以实现数据的发送和接收,根据使用手册的测试结果如下:

在这里插入图片描述
实际上,自己测试时,本地IP地址是内网IP地址,无法进行数据的传输,使用说明的IP地址的卖家那边的外网地址,所以这一步一直无法进行下去,要想调通,需要一个外网IP指针,跟自己的本机IP地址进行映射,才能进行TCP连接,通过网络调试助手传数据。

服务器IP、内网IP和外网IP

公网ip具有世界范围的唯一性,而内网ip只在局域网内部具有唯一性。并且,一个局域网里所有电脑的内网IP是互不相同的,但共用一个外网IP。

就像我们前面所说的你所在学校的校名在整个世界上只有一个,但是你学校里面的A栋大楼3层3号教室只有在你的校园内部才具有唯一性。别的学校也有A栋大楼3层3号教室。你只能跟快递小哥说请帮我把包裹送到xx大学,而不能说请帮我把包裹送到A栋大楼3层3号教室。

在局域网中,每台电脑都可以自己分配自己的IP,但是这个IP只在局域网中有效。而如果你将电脑连接到互联网,你的网络提供商的服务器会为你分配一个IP地址,这个IP地址才是你在外网的IP。两个IP同时存在,一个对内,一个对外。

扩展资料

内网和外网之间的通信(端口映射原理)

端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

A 电脑的 IP 是局域网 IP(192.168.31.11),这个 IP(192.168.31.11)是从路由器的 lan口分配的。当我们上百度的时候,经过路由器的 wan口,进行相应的IP、端口转化:192.168.31.11:80 -> 10.221.0.24:8080,所以,从 wan口出去的地址为:10.221.0.24:8080。

最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP(10.221.0.24:8080)转化为公网 IP(128.0.0.1:8888),通过这个公网 IP 去访问百度服务器。

同理,B 的过程也是一样。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。
要弄懂这个问题,你首先要了解什么叫内网,什么叫外网,什么叫服务器,服务器在网络中所扮演的是什么角色,
内网:就是指内部网络,窄义上的内网就是指中小型的局域网
外网:就是指在你办公网络之外能访问到的网络,窄义上的外网指的就是Internet
服务器所扮演的角色不同,他的IP地址会有所区别,
IP地址的划分,按国际的划分方法,内网的地址分为A类:10.0.0.0开始,B类:172.0.0.0,C类:192.0.0.0。这些地址你可以自己在计算机上指定;外网地址是指在Internet上使用的地址,除了这些保留做为内网的地址和其他保留地址之外的所有地址,这些IP地址是由ISP提供。服务器如果是内网的服务器,则使用的是内网IP,如果是提供Internet服务器的,就要使用外网地址。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
树莓派可以通过4G模块将图像数据传输到电脑。具体实现步骤如下: 1. 连接4G模块:将4G模块通过USB接口连接到树莓派上; 2. 安装4G模块驱动:在树莓派上安装4G模块所需要的驱动程序,在命令行中输入以下命令: ``` sudo apt-get install usb-modeswitch ``` 3. 设置4G模块接入网络:使用ppp拨号方式连接4G模块接入网络。在命令行中输入以下命令: ``` sudo apt-get install ppp sudo nano /etc/ppp/peers/provider ``` 在provider文件中输入以下内容,将用户名和密码替换为实际的拨号用户名和密码: ``` /dev/ttyUSB0 115200 # Replace USERNAME with your 3G/4G ISP provided username # Replace PASSWORD with your 3G/4G ISP provided password connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T internet" noipdefault defaultroute replacedefaultroute usepeerdns ``` 4. 进行图像传输:在树莓派上编写程序,使用4G模块传输图像数据。可以使用TCP/IP或UDP协议将图像数据传输到电脑上,命令如下: ``` raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | nc <IP address> <port> ``` 其中,raspivid命令用于获取图像数据,nc命令用于将图像数据通过网络传输到电脑上。需要将<IP address>和<port>替换为电脑的IP地址和端口号。 在电脑上,可以使用nc命令接收树莓派传输过来的图像数据,命令如下: ``` nc -l -p <port> | mplayer -fps 200 -demuxer h264es - ``` 其中,nc命令用于接收树莓派传输过来的图像数据,mplayer命令用于对接收到的图像数据进行解码和播放。需要将<port>替换为电脑和树莓派约定的端口号。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值