在目前的一个方案中, N个终端(gprs上网)通过udp和服务器(托管到机房)连接,并不断的发送数据包.我们的工程师告诉我,服务器无法分辨接受到的数据包来自哪一个终端.必须在每一组数据包里面加上设备的ID.我对此表示疑问,UDP创建的socket和TCP创建的socket不一样吗?一个连接创建一个socket,N个终端就有N个socket?另外我提出用远程IP+端口号来解决, 但是工程师说数据经过网关后IP是一样的,所以这样也不行.确实是这样的吗?
调试欢乐多
UDP是没有连接的
服务端一般都是采用异步模式,然后用一个Socket就行了IP会相同
端口可能是路由临时随机给的
UDP只会丢包,还有可能会分包
udp不像tcp那样会建立连接且封装了丢包处理,他只是往对应ip端口发包,所以有丢包的现象。