手机通过GPRS上网,连接点位cmnet。这是哪方面的问题啊,求大虾或做过这方面的帮帮忙啊
补充:数据线连接时以及模拟器上没问题,真机上就是以上问题。
14 个解决方案
#1
数据传送完之后,pc回发一个标识给手机,以告诉手机,数据我接收完了。
手机在接到pc的确认标识之后,关闭socket连接。
手机在接到pc的确认标识之后,关闭socket连接。
#3
你可以为pc端加上一个 HttpListener,只要不到30行代码即可,让它仍然按照tcp的协议来解析和返回。
http通信在gprs上非常正常,可以顺利通过移动层层*。
http通信在gprs上非常正常,可以顺利通过移动层层*。
#4
sp1234 能不能具体点啊,我没搞过HttpListener,高人啊,在论坛上经常看到你
#6
是把TCPlistener换成Httplistener来做吗,不用tcplistener
#7
为什么要换呢?用10分钟写上20行左右代码,只是多一个http接入的能力,不需要阉割以前的程序。
#8
谢谢sp1234啊
还是不是很明白是怎样个解析法啊,多一个http接入能力怎样理解呀,初学.net很多不会
还是不是很明白是怎样个解析法啊,多一个http接入能力怎样理解呀,初学.net很多不会
#9
你原来的tcp怎样解析收到的数据?
这跟接入方式没有关系,都是把接收到的数据交给你原来的那个处理程序嘛。多一种接入方式,只不过是接收客户端传来的数据,然后交给处理程序得到返回数据,然后用这种接入方式再输出给客户端。所以tcp、http、namedpipe等等接入方式,都是只有很短的二三十行代码的差别嘛。客户端可以选择任何一种方便联网的方式来访问服务器。
这跟接入方式没有关系,都是把接收到的数据交给你原来的那个处理程序嘛。多一种接入方式,只不过是接收客户端传来的数据,然后交给处理程序得到返回数据,然后用这种接入方式再输出给客户端。所以tcp、http、namedpipe等等接入方式,都是只有很短的二三十行代码的差别嘛。客户端可以选择任何一种方便联网的方式来访问服务器。
#10
你不是说“数据线连接时以及模拟器上没问题”吗?!
我们拿上面我搜到的那些列表中第二个、msdn上的代码例子看看好了,你可以通过
context.Request.Url.AbsolutePath
context.Request.QueryString[...]
等来查看url,看看客户端要访问哪一个功能(这个跟asp.net其实是一样的),也可以通过
context.Request.InputStream
里读取客户端post上传的消息内容,调用你已经写好的tcp中的处理方法,得到要返回的消息,然后通过
context.Response.OutputStream
返回给客户端。
这跟tcp的读取和写出消息是一样的,只不过现在是从context.Request.InputStream和context.Response.OutputStream这两个数据流来处理读取和写出而已。
我们拿上面我搜到的那些列表中第二个、msdn上的代码例子看看好了,你可以通过
context.Request.Url.AbsolutePath
context.Request.QueryString[...]
等来查看url,看看客户端要访问哪一个功能(这个跟asp.net其实是一样的),也可以通过
context.Request.InputStream
里读取客户端post上传的消息内容,调用你已经写好的tcp中的处理方法,得到要返回的消息,然后通过
context.Response.OutputStream
返回给客户端。
这跟tcp的读取和写出消息是一样的,只不过现在是从context.Request.InputStream和context.Response.OutputStream这两个数据流来处理读取和写出而已。
#11
先谢谢啦
我在研究研究先
我在研究研究先
#12
还是不行,我的电脑网络环境是在校园网内的局域网,可能原因就在这里吧,看来不搞个公网IP是不行了。现在有个问题就是为什么UDP可以到达,TCP连接就不成功而且TCP还能收到连接请求,这是不是也是网络环境的问题啊
#13
#14
暴露在公网的固定IP测试通过,IPv6普及就好了
#1
数据传送完之后,pc回发一个标识给手机,以告诉手机,数据我接收完了。
手机在接到pc的确认标识之后,关闭socket连接。
手机在接到pc的确认标识之后,关闭socket连接。
#2
#3
你可以为pc端加上一个 HttpListener,只要不到30行代码即可,让它仍然按照tcp的协议来解析和返回。
http通信在gprs上非常正常,可以顺利通过移动层层*。
http通信在gprs上非常正常,可以顺利通过移动层层*。
#4
sp1234 能不能具体点啊,我没搞过HttpListener,高人啊,在论坛上经常看到你
#5
#6
是把TCPlistener换成Httplistener来做吗,不用tcplistener
#7
为什么要换呢?用10分钟写上20行左右代码,只是多一个http接入的能力,不需要阉割以前的程序。
#8
谢谢sp1234啊
还是不是很明白是怎样个解析法啊,多一个http接入能力怎样理解呀,初学.net很多不会
还是不是很明白是怎样个解析法啊,多一个http接入能力怎样理解呀,初学.net很多不会
#9
你原来的tcp怎样解析收到的数据?
这跟接入方式没有关系,都是把接收到的数据交给你原来的那个处理程序嘛。多一种接入方式,只不过是接收客户端传来的数据,然后交给处理程序得到返回数据,然后用这种接入方式再输出给客户端。所以tcp、http、namedpipe等等接入方式,都是只有很短的二三十行代码的差别嘛。客户端可以选择任何一种方便联网的方式来访问服务器。
这跟接入方式没有关系,都是把接收到的数据交给你原来的那个处理程序嘛。多一种接入方式,只不过是接收客户端传来的数据,然后交给处理程序得到返回数据,然后用这种接入方式再输出给客户端。所以tcp、http、namedpipe等等接入方式,都是只有很短的二三十行代码的差别嘛。客户端可以选择任何一种方便联网的方式来访问服务器。
#10
你不是说“数据线连接时以及模拟器上没问题”吗?!
我们拿上面我搜到的那些列表中第二个、msdn上的代码例子看看好了,你可以通过
context.Request.Url.AbsolutePath
context.Request.QueryString[...]
等来查看url,看看客户端要访问哪一个功能(这个跟asp.net其实是一样的),也可以通过
context.Request.InputStream
里读取客户端post上传的消息内容,调用你已经写好的tcp中的处理方法,得到要返回的消息,然后通过
context.Response.OutputStream
返回给客户端。
这跟tcp的读取和写出消息是一样的,只不过现在是从context.Request.InputStream和context.Response.OutputStream这两个数据流来处理读取和写出而已。
我们拿上面我搜到的那些列表中第二个、msdn上的代码例子看看好了,你可以通过
context.Request.Url.AbsolutePath
context.Request.QueryString[...]
等来查看url,看看客户端要访问哪一个功能(这个跟asp.net其实是一样的),也可以通过
context.Request.InputStream
里读取客户端post上传的消息内容,调用你已经写好的tcp中的处理方法,得到要返回的消息,然后通过
context.Response.OutputStream
返回给客户端。
这跟tcp的读取和写出消息是一样的,只不过现在是从context.Request.InputStream和context.Response.OutputStream这两个数据流来处理读取和写出而已。
#11
先谢谢啦
我在研究研究先
我在研究研究先
#12
还是不行,我的电脑网络环境是在校园网内的局域网,可能原因就在这里吧,看来不搞个公网IP是不行了。现在有个问题就是为什么UDP可以到达,TCP连接就不成功而且TCP还能收到连接请求,这是不是也是网络环境的问题啊
#13
#14
暴露在公网的固定IP测试通过,IPv6普及就好了