作者:丢失的面包树 | 来源:互联网 | 2023-07-28 19:27
我们平常编程会使用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 个解决方案
用GPRS的时候没有外网IP 怎么可能连接的上
就类似你的本地电脑上应用 在互联网上不能访问一个原理
你是说没办法实现连接外网咯?那GPRS怎么上WEB的网页??。。。。肯定有外网的IP可以连接外网的啊。。。
搞定了谢谢,各位
参考文章,最后一项使用WAP连接Socket,还没测试
http://blog.csdn.net/BBHeipy/article/details/5615044
没有测试,晚上回家,加上代码才知道。现在国内很少WIFI连接啊,如果要实时连接到服务器必须要通过的GPRS。。。
如果你服务器有静态IP地址,手机能上网就能够监听到的,和具体通过什么上网没关系。如果你没静态IP,那只能局域网
看看你手机是使用CMNET 还是CMWAP,如果是后者则需要代理才可以
10楼说的还是不错,和我在网上看到的内容差不多。也是说需要使用代理
而使用代理需要在代码里加什么话??网上好像有写,但是加到代理里会报错。不知道楼上有没有做过这方面的代码
昨天我使用GPRS测试的时候,在我自己的手机上测试,直接使用电脑普通SOCKET通讯的代码就可以上传了,不知道我的手机是不是直接走的CMNET方式。我给我朋友测试的时候,他说他只开了CMWAP,那样我服务器就没有收到他的文件。
为什么我的cmnet已经打开,但socket还是连不上
你的服务器需要在外网上,不能在局域网,如果处于局域网,还需要对服务器的端口进行映射,就像你的整个校园网络是一个大的局域网。然后有一个网关可以访问internet,从外部来的访问,能够访问到的也只是你的网关,他无法自动获取到你内部服务器 的位置,寻找这个过程是通过网关去转发的。做映射的工作就是当有人访问你的服务器的时候,网关知道往哪里转发。
自己的理解和经验,有不对的地方请指出、交流
我们最近正好也做了一个基于gprs的大规模应用,可以支持上千台gprs设备用socket方式连接服务器。
有开放接口,欢迎大家测试交流。 184.169.160.55这个ip地址监听12345端口,可以进行连接测试。
184.169.160.55/GPRS_Free_Test/
这个需要登录你的网关去设置了。具体设置请百度,很多文章了,这里不赘述。
楼主您好,我最近也在做一个使用GRPS网络访问服务器的项目,遇到和你相同的问题。我的服务器是192.168.109,是可以访问外网的。怎样把这个服务器地址映射到外网上呢?
你好楼主,这里是初学者,我最近也在研究,我想实现一个从客户端手机上获取蓝牙地址并通过socket连接把地址传给服务器端的功能,现在的问题是在手机上可以获取到mac地址的显示,但是我一旦把socket的相关.java放进去就没有任何反应,求答案。