L1=winsocklocalPort
winsock.close
winsock.bind L1
则B机又参正常接收数据了.但有时winsock.bind L1时会出错,不是原来的端口号,则两机无法正常联络了.
互相发送的是实时音视频,数据量较大.两台电脑通过集线器和路由器连接上ADSL.通过服务器中转数据或在一个集线器下直接传送数据同样有此问题.
请问有没有朋友遇到此类问题?如何避免或解决?谢谢!
7 个解决方案
#1
应该是程序哪里处理的有问题
#2
好像不应该再“winsock.bind L1” 了
#3
接收程序很简单,没有别的代码控制了.winsock接收时有时候会出错,都自动跳过了.程序运行的很平稳,每次出现上面的问题都是在7分钟左右的时候.停止收数据时不会报错.
winsock.bind L1时,因为旧端口L1没有及时关闭,所以有时会出错,绑定的是下一个自动生成的端口.
winsock控件添加到窗体后,我除了修改了协议类型为UDP外,别的没有修改,是不是还要调整一些设置呢?
winsock.bind L1时,因为旧端口L1没有及时关闭,所以有时会出错,绑定的是下一个自动生成的端口.
winsock控件添加到窗体后,我除了修改了协议类型为UDP外,别的没有修改,是不是还要调整一些设置呢?
#4
bind 是 采用 udp
#5
是用的UDP协议,在局域网内二台电脑用timer控件不停的收发消息,大概每秒发送15次左右,每个数据包长度不超过1440字节,有的数据包很短,只有十几个字节.
当出现winsock接收事件无响应时,点一个按钮,运行上面的关闭后再绑定到原来的端口,会立即响应,无响应期间的数据也马上都收到了(不能确定全部收到了,至少有一部分是收到了).
现在这个问题解决不了,只有定时检查没有数据传来时就自动关闭winsock再绑定到原来的端口了.请朋友们讨论一下如何避免?
谢谢!
当出现winsock接收事件无响应时,点一个按钮,运行上面的关闭后再绑定到原来的端口,会立即响应,无响应期间的数据也马上都收到了(不能确定全部收到了,至少有一部分是收到了).
现在这个问题解决不了,只有定时检查没有数据传来时就自动关闭winsock再绑定到原来的端口了.请朋友们讨论一下如何避免?
谢谢!
#6
关注
#7
UDP的特点是不建立连接的发送.他是一个简单的协议,所以要自己加上一些容错的功能,但是我们加了容错功能的程序有时还不如直接使用TCP协议简单.所以,如果同时连接的数量不是很大的话,用TCP会更好些,因为TCP其实就是一个有更多容错功能的UDP集.
#1
应该是程序哪里处理的有问题
#2
好像不应该再“winsock.bind L1” 了
#3
接收程序很简单,没有别的代码控制了.winsock接收时有时候会出错,都自动跳过了.程序运行的很平稳,每次出现上面的问题都是在7分钟左右的时候.停止收数据时不会报错.
winsock.bind L1时,因为旧端口L1没有及时关闭,所以有时会出错,绑定的是下一个自动生成的端口.
winsock控件添加到窗体后,我除了修改了协议类型为UDP外,别的没有修改,是不是还要调整一些设置呢?
winsock.bind L1时,因为旧端口L1没有及时关闭,所以有时会出错,绑定的是下一个自动生成的端口.
winsock控件添加到窗体后,我除了修改了协议类型为UDP外,别的没有修改,是不是还要调整一些设置呢?
#4
bind 是 采用 udp
#5
是用的UDP协议,在局域网内二台电脑用timer控件不停的收发消息,大概每秒发送15次左右,每个数据包长度不超过1440字节,有的数据包很短,只有十几个字节.
当出现winsock接收事件无响应时,点一个按钮,运行上面的关闭后再绑定到原来的端口,会立即响应,无响应期间的数据也马上都收到了(不能确定全部收到了,至少有一部分是收到了).
现在这个问题解决不了,只有定时检查没有数据传来时就自动关闭winsock再绑定到原来的端口了.请朋友们讨论一下如何避免?
谢谢!
当出现winsock接收事件无响应时,点一个按钮,运行上面的关闭后再绑定到原来的端口,会立即响应,无响应期间的数据也马上都收到了(不能确定全部收到了,至少有一部分是收到了).
现在这个问题解决不了,只有定时检查没有数据传来时就自动关闭winsock再绑定到原来的端口了.请朋友们讨论一下如何避免?
谢谢!
#6
关注
#7
UDP的特点是不建立连接的发送.他是一个简单的协议,所以要自己加上一些容错的功能,但是我们加了容错功能的程序有时还不如直接使用TCP协议简单.所以,如果同时连接的数量不是很大的话,用TCP会更好些,因为TCP其实就是一个有更多容错功能的UDP集.