socket多线程问题

Vieboo韦伯 发布于 2012/07/24 14:05
阅读 628
收藏 0
我想实现一个功能就是用一个socket的对象,两个线程来同时发送两个文件,我个socket对象加了锁,但是当运行第二个线程时会报java.net.SocketException: Socket is closed 这个错误,我对socket这块不是很熟悉,希望各位大神给个思路和提醒,谢谢!

以下是问题补充:

@Vieboo韦伯:线程代码: public class SendThread1 implements Runnable{ Socket socket; public SendThread1(Socket socket){ this.socket = socket; } @Override public void run() { synchronized (socket) { System.out.println("-------Thread1--------"); FileInputStream fis = null; OutputStream os = null; try { fis = new FileInputStream(filePath2); os = socket.getOutputStream(); while(isRecording){ System.out.println(); byte [] buffer = new byte[650]; String head = "0650"; byte [] headbyte = head.getBytes(); System.arraycopy(headbyte, 0, buffer, 0, headbyte.length); byte [] channelTypeByte = channelType1.getBytes(); System.arraycopy(channelTypeByte, 0, buffer, headbyte.length, channelTypeByte.length); int length = fis.read(buffer, headbyte.length + channelTypeByte.length, 650 - (headbyte.length + channelTypeByte.length)); if(length > 0){ byte [] sendBuffer = new byte[650]; System.arraycopy(buffer, 0, sendBuffer, 0, buffer.length); os.write(sendBuffer, 0, sendBuffer.length); }else{ break; } } os.close(); // fis.close(); // socket.close(); } catch (Exception e) { e.printStackTrace(); } } } 第二个线程和第一个线程基本相同 (2012/07/24 14:39)
加载中
0
Timor君
Timor君
是你对多线程不熟吧
0
kong_resty
kong_resty
贴下代码哦
0
jsworld
jsworld
你这个代码大家没法看啊,格式弄好,把全部代码整齐贴出来。
返回顶部
顶部