热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用安卓手机GPRS网络连接Socket问题

我们平常编程会使用SOCKET来进行数据的传输例如serverServerSocketservernewServerSocket(4321);while(true)
我们平常编程会使用SOCKET来进行数据的传输
例如
//server
ServerSocket server = new ServerSocket(4321);

while(true) {

socket = server.accept();

new ServerThread(socket).start();

}

以上开启一个服务器一直进行客户端的连接监听工作
//client
SocketConnection sc = (SocketConnection) Connector.open("socket://127.0.0.1:4321"); 
以上为客户端连接Socket服务器代码。
服务器一旦监听到连接便会开始一个Socket对象,进行数据传输。


问题来了,我使用手机进行测试的时候,手机如果存在WIFI的时候可以连接服务器端,进行数据传输,一旦手机没有WIFI,只有使用运营商提供的GPRS连接的时候,怎么能够连接上服务器端呢?

求大神

23 个解决方案

#1


用GPRS的时候没有外网IP 怎么可能连接的上
就类似你的本地电脑上应用 在互联网上不能访问一个原理 

#2


你是说没办法实现连接外网咯?那GPRS怎么上WEB的网页??。。。。肯定有外网的IP可以连接外网的啊。。。

#3


搞定了谢谢,各位
参考文章,最后一项使用WAP连接Socket,还没测试
http://blog.csdn.net/BBHeipy/article/details/5615044

#4


你尝试过了吗?OK否?我之前做了一个应用,也是没有用GPRS连接,只能在WIFI的情况下使用。
引用 3 楼  的回复:
搞定了谢谢,各位
参考文章,最后一项使用WAP连接Socket,还没测试
http://blog.csdn.net/BBHeipy/article/details/5615044

#5


没有测试,晚上回家,加上代码才知道。现在国内很少WIFI连接啊,如果要实时连接到服务器必须要通过的GPRS。。。

#6


如果你服务器有静态IP地址,手机能上网就能够监听到的,和具体通过什么上网没关系。如果你没静态IP,那只能局域网

#7


楼主搞定了么?我也遇到了同样的问题……

#8


楼主解决没?我也遇到了同样的问题。纠结中……

#9


看看你手机是使用CMNET 还是CMWAP,如果是后者则需要代理才可以

#10


引用 9 楼  的回复:
看看你手机是使用CMNET 还是CMWAP,如果是后者则需要代理才可以

   补充一下:
   CMNET和CMWAP是中国移动GPRS网络的两个不同APN(接入点名称),之所以这样分类是以控制为目的。CMNET提供了NAT服务,使用该服务的手机可以直接访问internet。CMWAP只提供了WAP代理和HTTP代理,手机上网能访问的范围有限,接入时只能访问GPRS网络内的IP(10,*,*,*)。因此CMWAP主要用于手机WAP上网,CMNET则是用于PC,笔记本电脑,PDA等设备实现GPRS上网。两者手机上网的方式没有差别,如此划分是中国移动对手机上网服务对象的定位不同,所以他们的应用范围和自费标准不同。 

#11


10楼说的还是不错,和我在网上看到的内容差不多。也是说需要使用代理

而使用代理需要在代码里加什么话??网上好像有写,但是加到代理里会报错。不知道楼上有没有做过这方面的代码

昨天我使用GPRS测试的时候,在我自己的手机上测试,直接使用电脑普通SOCKET通讯的代码就可以上传了,不知道我的手机是不是直接走的CMNET方式。我给我朋友测试的时候,他说他只开了CMWAP,那样我服务器就没有收到他的文件。

#12


为什么我的cmnet已经打开,但socket还是连不上

#13


引用 10 楼  的回复:
引用 9 楼  的回复:

看看你手机是使用CMNET 还是CMWAP,如果是后者则需要代理才可以

   补充一下:
   CMNET和CMWAP是中国移动GPRS网络的两个不同APN(接入点名称),之所以这样分类是以控制为目的。CMNET提供了NAT服务,使用该服务的手机可以直接访问internet。CMWAP只提供了WAP代理和HTTP代理,手机上网能访问的范围有限,接入时只能访……


您好!手机使用的是cmnet,但是测试socket还是连接不上,是因为pc用的校园网么?

#14


你的服务器需要在外网上,不能在局域网,如果处于局域网,还需要对服务器的端口进行映射,就像你的整个校园网络是一个大的局域网。然后有一个网关可以访问internet,从外部来的访问,能够访问到的也只是你的网关,他无法自动获取到你内部服务器 的位置,寻找这个过程是通过网关去转发的。做映射的工作就是当有人访问你的服务器的时候,网关知道往哪里转发。

自己的理解和经验,有不对的地方请指出、交流

#15


引用 14 楼  的回复:
你的服务器需要在外网上,不能在局域网,如果处于局域网,还需要对服务器的端口进行映射,就像你的整个校园网络是一个大的局域网。然后有一个网关可以访问internet,从外部来的访问,能够访问到的也只是你的网关,他无法自动获取到你内部服务器 的位置,寻找这个过程是通过网关去转发的。做映射的工作就是当有人访问你的服务器的时候,网关知道往哪里转发。

自己的理解和经验,有不对的地方请指出、交流


明白啦!谢谢楼主!!!!

#16


我们最近正好也做了一个基于gprs的大规模应用,可以支持上千台gprs设备用socket方式连接服务器。

有开放接口,欢迎大家测试交流。 184.169.160.55这个ip地址监听12345端口,可以进行连接测试。

184.169.160.55/GPRS_Free_Test/

#17


引用 16 楼  的回复:
我们最近正好也做了一个基于gprs的大规模应用,可以支持上千台gprs设备用socket方式连接服务器。

有开放接口,欢迎大家测试交流。 184.169.160.55这个ip地址监听12345端口,可以进行连接测试。

184.169.160.55/GPRS_Free_Test/


近期要对公司的移动办公软件进行升级,需要用到socket来开发推送功能,以减少终端设备对服务器访问次来减少数据流量的使用。
正好用上,不知道能否用UDP,楼主的千台GPRS设备连接服务器,需要注意哪些地方呢?

#18


引用 14 楼  的回复:
你的服务器需要在外网上,不能在局域网,如果处于局域网,还需要对服务器的端口进行映射,就像你的整个校园网络是一个大的局域网。然后有一个网关可以访问internet,从外部来的访问,能够访问到的也只是你的网关,他无法自动获取到你内部服务器 的位置,寻找这个过程是通过网关去转发的。做映射的工作就是当有人访问你的服务器的时候,网关知道往哪里转发。

自己的理解和经验,有不对的地方请指出、交流

我的服务器也在局域网里,怎么对服务器的端口进行映射?

#19


这个需要登录你的网关去设置了。具体设置请百度,很多文章了,这里不赘述。

#20


回复一下,关注下类似技术

#21


楼主您好,我最近也在做一个使用GRPS网络访问服务器的项目,遇到和你相同的问题。我的服务器是192.168.109,是可以访问外网的。怎样把这个服务器地址映射到外网上呢?

#22


你好楼主,这里是初学者,我最近也在研究,我想实现一个从客户端手机上获取蓝牙地址并通过socket连接把地址传给服务器端的功能,现在的问题是在手机上可以获取到mac地址的显示,但是我一旦把socket的相关.java放进去就没有任何反应,求答案。

#23


楼主求解答呀。

推荐阅读
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 通过采用用户数据报协议(UDP),本研究设计并实现了一种高效的文件传输方法。在发送端,系统利用Java编程语言中的相关类库,如`File`和`FileInputStream`,实现了文件的读取与分段处理,确保了数据的快速传输。该方法不仅提高了传输效率,还降低了网络拥塞的风险,适用于大规模文件传输场景。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
author-avatar
丢失的面包树
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有