两个工具用socket通信,一个c++(比较大的软件),一个c#(小工具),发现运行时间越长,延迟居然达数分钟(一般是分钟的整数倍),这可能是什么问题造成的?
下面是自编的一个捕获程序分析的,
recv是接收时的本地时间,
send是TCP报文的时间
sign是数据产生及发送的时间,从报文数据里解析的
很有规律的是:两个sign同时发送,就会增加延时
len=237,recv=10:25:01.980,send=10:25:01,49864->11009:sign=10:22:49.0 len=233,recv=10:26:02.77,send=10:26:02,49864->11009:sign=10:22:49.0 len=238,recv=10:29:03.84,send=10:29:02,49864->11009:sign=10:25:02.0 len=234,recv=10:30:03.86,send=10:30:02,49864->11009:sign=10:25:02.0 len=237,recv=10:45:04.101,send=10:45:03,49864->11009:sign=10:41:11.0 len=234,recv=10:49:04.218,send=10:49:04,49864->11009:sign=10:45:03.0 len=237,recv=10:50:05.227,send=10:50:04,49864->11009:sign=10:45:03.0 len=233,recv=10:51:05.232,send=10:51:04,49864->11009:sign=10:45:03.0 len=231,recv=11:09:48.261,send=11:09:47,49864->11009:sign=11:03:46.0 len=234,recv=11:26:03.319,send=11:26:03,49864->11009:sign=11:20:02.0 len=234,recv=11:27:03.323,send=11:27:03,49864->11009:sign=11:20:02.0 len=237,recv=11:35:17.347,send=11:35:17,49864->11009:sign=11:29:15.0 len=233,recv=11:36:17.349,send=11:36:17,49864->11009:sign=11:29:15.0 len=237,recv=13:40:50.673,send=13:40:49,50505->11009:sign=13:40:50.0 len=237,recv=13:41:50.669,send=13:41:49,50505->11009:sign=13:40:50.0 len=236,recv=13:45:51.660,send=13:45:50,50505->11009:sign=13:45:03.0 len=238,recv=13:46:51.662,send=13:46:50,50505->11009:sign=13:45:52.0 len=232,recv=13:50:01.670,send=13:50:00,50505->11009:sign=13:49:49.0 len=232,recv=13:51:01.678,send=13:51:00,50505->11009:sign=13:49:49.0 len=237,recv=13:52:01.680,send=13:52:00,50505->11009:sign=13:50:01.0 len=237,recv=13:53:01.683,send=13:53:01,50505->11009:sign=13:50:01.0 len=235,recv=14:02:24.705,send=14:02:24,50505->11009:sign=13:59:24.0 len=231,recv=14:06:40.753,send=14:06:40,50505->11009:sign=14:03:40.0 len=234,recv=14:23:23.786,send=14:23:22,50505->11009:sign=14:20:23.0 len=237,recv=14:24:23.790,send=14:24:22,50505->11009:sign=14:20:23.0 len=236,recv=14:29:42.776,send=14:29:42,50505->11009:sign=14:25:42.0 len=232,recv=14:42:54.835,send=14:42:53,50505->11009:sign=14:38:54.0 len=238,recv=14:48:01.847,send=14:48:01,50505->11009:sign=14:45:01.0 len=234,recv=14:49:01.850,send=14:49:01,50505->11009:sign=14:45:01.0 len=232,recv=15:17:01.888,send=15:17:01,50505->11009:sign=15:13:58.0 len=238,recv=15:18:01.890,send=15:18:01,50505->11009:sign=15:14:02.0
11009是什么数据?发送一个数据用的时候吗???还有那个时间毫秒数为0是不是因为你用的那个时间实例本来就没有毫秒数哦。反正我知道http请求返回的时候是没有毫秒数的。
50505->11009是双方端口
@11ge: 那应该是时间精度的问题,只精确到了秒。
侦听端口吧,先看发的时候有没有及时发,然后看收的时候有没有及时收。
非socket问题