自己一个人摸索真的很难,
一开始走错的就是用外网IP来侦听,,结果总是报错:"在其上下文中无效";
网上搜了一大堆,都没有说到重点,其实真实的就是:
用内网的IP侦听,用控制台或路由器进行端口映射;
第二个走错的地方就是开了多余的线程用来接收信息,
侦听者第一次异步侦听到连接的时候就已经是第二条线程,
完全不需要用Beginread来开多一条线程来接收信息,
直接使用read(),即使阻塞也与主线程无关.
不过这只是侦听者方面,发送者应当异步地读取
第三个走错的地方现在还没走出来,,,,
那就是,在对外网发送数据的时候,接收的包数总是大于发送的包数;
也许是发了一包,接收却分多包来接收;
一开始走错的就是用外网IP来侦听,,结果总是报错:"在其上下文中无效";
网上搜了一大堆,都没有说到重点,其实真实的就是:
用内网的IP侦听,用控制台或路由器进行端口映射;
第二个走错的地方就是开了多余的线程用来接收信息,
侦听者第一次异步侦听到连接的时候就已经是第二条线程,
完全不需要用Beginread来开多一条线程来接收信息,
直接使用read(),即使阻塞也与主线程无关.
不过这只是侦听者方面,发送者应当异步地读取
第三个走错的地方现在还没走出来,,,,
那就是,在对外网发送数据的时候,接收的包数总是大于发送的包数;
也许是发了一包,接收却分多包来接收;