类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我的程序得到几个字符串数据和一个图片后,就要马上通过winsock 发送给别的电脑.
我是这样想的,先把图片以二进制数组的形式发出去,然后延时个0.5秒,再把几个字符串以字符串数组的形式发出去.
但是我有几点不明白:
1.在数据接收端应该怎么接收?(单独接收图片或字符串我会,但是一起我就不知道了)
2.由于两个数据差不多同时发出去,会不会相互之间有影响!
3.我的图片大概是10K左右,不知道一次可不可以传完.(winsock一次最多可以发多少K的数据?)
我很少用winsock,主要是做数据库的,现在需要用winsock发几个数据,没办法啊!只有到这来求教了!
请赐教!!!!!!!!!!!
网友回答:
不用 延时0.5 秒 其实网络是不稳定的 可能 过了0。5秒前面的包还没发出去
正确解决办法 自己定义一个格式 譬如 使用 &H000000 来分隔 你的图片和 字符 然后一起发送 而且 每个包 的头几个字节为这个包的长度
一次只能发8K左右.要分两次发.
延时是没有用的,要不你就用点头的办法,但是如果是tcp协议的话就不要考虑包头的问题,因为tcp协议会自动找包。也要注意,socket 1个包是8k
其实我自己是建议你用2个socket传,这样什么问题都没有了,。
没办法,控件的缓冲区只有8k
学习啊
呵呵
up
那怎样拆成一个一个的包? 拆了以后又怎么合呢?
我做的都是文本数据(ASCII码)根本没有考虑其大小。有多少,就发多少!
我想我这种方法肯定是有局限性的。