做的项目中涉及到抓拍,算法是C 写的,Java写的应用层。用socket进行通信,C写的客户端,Java写服务器,传图片文件时,Java服务器,接受时,遇到IO 阻塞问题。java Server具体代码如下:
package finaly;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.util.Timer;
import java.util.TimerTask;
/**
*
*/
public class MyServerSocket
{
public static void main(String[] args)
{
try
{
ServerSocket server = new ServerSocket(10086);
// server.setSoTimeout(10000);
while (true)
{
Socket s = server.accept();// 阻塞方法
// 只负责和客户端进行握手
new Thread(new UUploadThread(s)).start();
}
} catch (IOException e)
{
e.printStackTrace();
}
}
}
class UUploadThread implements Runnable
{
private Socket s;
int reallyGetSizeToKB = 0;
OutputStream out = null;
public UUploadThread(Socket s)
{