请问Socket如何发送二进制文件?

请问Socket如何发送二进制文件?
自己测试不行。

方式:写一个上传的cgi,可以用web方式上传。
然后用Socket发送给它,但不行,Content-Length也不知如何确定,用length得到的数值总是很小。