我的接收部分应当没有问题:
if Socket.ReceiveLength>=Image1.Width+SizeOf(Integer) then
是判断当前socket缓冲区中的未读出的字节数, 如果这个数值<一行的字节数则不读socket而将它留在系统缓冲区里。 知道这个数值超过一行的长度。
下面用receivebuf接受一行的数据同时将缓冲区中已读出的清除(可能这时缓冲区里还保留有下面一行的数据未读出呢)
发送部分也没有什么问题呀。
我看下来出现问题的可能是server端的Image2的宽度和client端的Image1的宽度不同!
(server端的图片小,而且你server端的图片只有一行数据不同), 这样client端就不会执行下去了(因为接受不到足够一行的数据).