<div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">client<span class="Apple-tab-span" style="white-space:pre;"> </span>|<span class="Apple-tab-span" style="white-space:pre;"> </span>server</div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"> -----------문자열 전송 ------------></span></font> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"> -------입력파일(A.txt)전송 ----------></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>입력파일을 읽어 연산</div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"> <-----------문자열 전송 ------------ <div> <-------출력파일(B.txt)전송 ----------</div></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">하는 서버를 만들고있는데 클라이언트쪽 파일 전송까지 정상적으로 되고 그뒤로는 소켓이 끊겨버리면서 서버에서 전송한 결과를 클라쪽에서 받을 수가 없네요</div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">진짜 이것저것 바꿔보고 해도 도저히 답이 안나와서 ㅠㅠㅠㅠ</div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">저번에 올렸었는데 아직 해결이 안되서 이번에 소스도 함께 올려봅니다 계속 이부분에서 막혀서 진행이 안되네요 ㅠㅠㅠㅠ </div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">도와주세용 ㅠㅠㅠ</div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;"><br></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">---------------Server--------------</div> <div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;">public class BioToolServer {</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public static void main(String[] args) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>new BioToolServer().runServer();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public void runServer() {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>int SERVER_PORT = 7777; // 임시포트</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>ServerSocket serverSocket = null;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>Socket socket = null;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("\n\n\n=======>>>>>>> 서버 시작\n");</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>serverSocket = new ServerSocket(SERVER_PORT);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>while (true) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>// 클라이언트 접속 대기 accept()</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>socket = serverSocket.accept();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("[" + socket.getInetAddress() //</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>+ ":" + socket.getPort() + "]" + "접속");</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>//BToolServer</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>BToolServer bioServer = new BToolServer(socket);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>bioServer.start();</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}// while</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (Exception e) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} finally {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>// SocketUtil.close(serverSocket);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;">}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;">class BToolServer extends Thread {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private Socket socket;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private DataOutputStream dsOut;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private DataInputStream dsIn;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>BToolServer(Socket socket) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>this.socket = socket;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsIn = new DataInputStream(socket.getInputStream());</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut = new DataOutputStream(socket.getOutputStream());</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (IOException e) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public void run() {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String strInput = dsIn.readUTF();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("strInput : " + strInput);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>if (strInput.equals("serverEchoTest")) { // Echo</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.writeUTF(strInput);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} else if (strInput.equals("runBio")) { // BioTool</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>// File Receive</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String rFileName = dsIn.readUTF();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("sFileName : " + rFileName);</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String rFilePath = "C:\\Users\\Administrator\\Desktop\\temp\\ServerIn\\"</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>+ rFileName;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>File inFile = new File(rFilePath);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>FileOutputStream fOutStream = new FileOutputStream(inFile);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>BufferedOutputStream bufferOut = new BufferedOutputStream(</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>fOutStream);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>int inLen;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>int inSize = 4096;</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>byte[] inData = new byte[inSize];</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%");</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>while ((inLen = dsIn.read(inData)) != -1) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>bufferOut.write(inData, 0, inLen);</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>bufferOut.flush();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>bufferOut.close();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>fOutStream.close();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsIn.close();</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");</span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;line-height:21.6px;"><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font></span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("결과전송!");</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.writeUTF("결과전송테스트");</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.close();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (IOException e) {</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;">}</span></font></div></div></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;">----------------client main-----------------------</span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"> </span></font> <div>String ip = "127.0.0.1";<span class="Apple-tab-span" style="white-space:pre;"> </span>//const</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int port = 7777;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>BioToolClient echoTest = new BioToolClient(ip,port);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(echoTest.serverEchoTest()){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("정상");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>echoTest.runBioTool();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("안옴");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6px;"><br></span></font></div> <div><span style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6px;">----------------client -----------------------</span></div> <div><font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif"> </font> <div style="line-height:21.6px;">public class BioToolClient {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private String serverIp;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private int nPort;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private static String TEMP_DIR = "C:\\Users\\Administrator\\Desktop\\temp\\";</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>BioToolClient(String serverIp, int nPort) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>this.nPort = nPort;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>this.serverIp = serverIp;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public boolean serverEchoTest() {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>Socket socket = new Socket(serverIp, nPort);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>DataOutputStream dsOut = new DataOutputStream(socket.getOutputStream());</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>DataInputStream dsIn = new DataInputStream(socket.getInputStream());</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>boolean isInputData = true;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>//String InputData = "runBio";</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String InputData = "serverEchoTest";</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String returnData = "";</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.writeUTF(InputData);</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>while (isInputData) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>returnData = dsIn.readUTF();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>isInputData = false;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("insert : " + returnData);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>if (InputData.trim().equals(returnData)) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.close();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsIn.close();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>socket.close();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>return true;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (IOException e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>return false;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public void runBioTool() {</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>Socket socket;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>socket = new Socket(serverIp, nPort);</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>ClientSender sender = new ClientSender(socket);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>ClientReceiver receiver = new ClientReceiver(socket);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>receiver.start();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>sender.start();</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (IOException e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;">}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;">class ClientReceiver extends Thread {</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private Socket socket;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private DataInputStream dsIn;</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>ClientReceiver(Socket socket) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>this.socket = socket;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsIn = new DataInputStream(socket.getInputStream());</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (Exception e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>@Override</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public void run() {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("\n----------Receiver------------\n");</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String strInput = "";</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>while(true)</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strInput = dsIn.readUTF();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println(strInput);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (IOException e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;">}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;">class ClientSender extends Thread {</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private Socket socket;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>private DataOutputStream dsOut;</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>ClientSender(Socket socket) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>this.socket = socket;</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut = new DataOutputStream(socket.getOutputStream());</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (Exception e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>@Override</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>public void run() {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>try {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("\n----------Sender------------\n");</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String sFileName = "clientSend.txt";</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>String sFilePath = "C:\\Users\\Administrator\\Desktop\\temp\\" + sFileName;</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.writeUTF("runBio");<span class="Apple-tab-span" style="white-space:pre;"> </span>//분석 툴 실행 구분</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.writeUTF(sFileName);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>File readFile = new File(sFilePath);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>FileInputStream fInStream = new FileInputStream(readFile);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>BufferedInputStream bufferIn = new BufferedInputStream(fInStream);</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>int len = 0;</div> <div style="line-height:21.6px;"> int size = 4096;</div> <div style="line-height:21.6px;"> byte[] data = new byte[size];</div> <div style="line-height:21.6px;"> while ((len = bufferIn.read(data)) != -1) {</div> <div style="line-height:21.6px;"> <span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.write(data, 0, len);</div> <div style="line-height:21.6px;"> }</div> <div style="line-height:21.6px;"> </div> <div style="line-height:21.6px;"> bufferIn.close();</div> <div style="line-height:21.6px;"> fInStream.close();</div> <div style="line-height:21.6px;"> dsOut.flush();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>dsOut.close();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>} catch (Exception e) {</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>e.printStackTrace();</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div style="line-height:21.6px;">}</div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;">///////////////////////////////////////////////</div> <div style="line-height:21.6px;">클라이언트 콘솔</div> <div style="line-height:21.6px;"><span style="line-height:21.6px;">///////////////////////////////////////////////</span></div> <div> <div><span style="line-height:21.6px;">insert : serverEchoTest</span></div> <div><span style="line-height:21.6px;">정상</span></div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;">----------Receiver------------</span></div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;">----------Sender------------</span></div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;">java.net.SocketException: socket closed</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.net.SocketInputStream.socketRead0(Native Method)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.net.SocketInputStream.read(SocketInputStream.java:129)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.net.SocketInputStream.read(SocketInputStream.java:182)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.io.DataInputStream.readUTF(DataInputStream.java:572)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at java.io.DataInputStream.readUTF(DataInputStream.java:547)</span></div> <div><span style="line-height:21.6px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>at com.ClientReceiver.run(BioToolClient.java:97)</span></div></div> <div><span style="line-height:21.6px;"><br></span></div> <div> <div style="line-height:21.6px;">///////////////////////////////////////////////</div> <div style="line-height:21.6px;">서버 콘솔</div></div> <div style="line-height:21.6px;"><span style="line-height:21.6px;">///////////////////////////////////////////////</span></div> <div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;">=======>>>>>>> 서버 시작</span></div> <div><span style="line-height:21.6px;"><br></span></div> <div><span style="line-height:21.6px;">[/127.0.0.1:57247]접속</span></div> <div><span style="line-height:21.6px;">strInput : serverEchoTest</span></div> <div><span style="line-height:21.6px;">[/127.0.0.1:57248]접속</span></div> <div><span style="line-height:21.6px;">strInput : runBio</span></div> <div><span style="line-height:21.6px;">sFileName : clientSend.txt</span></div> <div><span style="line-height:21.6px;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span></div> <div><span style="line-height:21.6px;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div> <div><span style="line-height:21.6px;">결과전송!</span></div> <div><span style="line-height:21.6px;">java.net.SocketException: Socket closed</span></div> <div><span style="line-height:21.6px;"> at java.net.SocketOutputStream.socketWrite(Unknown Source)</span></div> <div><span style="line-height:21.6px;"> at java.net.SocketOutputStream.write(Unknown Source)</span></div> <div><span style="line-height:21.6px;"> at java.io.DataOutputStream.write(Unknown Source)</span></div> <div><span style="line-height:21.6px;"> at java.io.DataOutputStream.writeUTF(Unknown Source)</span></div> <div><span style="line-height:21.6px;"> at java.io.DataOutputStream.writeUTF(Unknown Source)</span></div> <div><span style="line-height:21.6px;"> at com.BToolServer.run(BioToolServer.java:104)</span></div> <div style="line-height:21.6px;"><br></div></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;"><br></div> <div style="line-height:21.6px;">아 진짜 답답해서 돌아버리겠습니다 ㅠㅠ 데이터를 주고 받고 close하는 부분때문인거 같은데 여기저기 옮겨보고 없애봐도 에러가나거나 무한루프를 도네요... 도와주세요 ㅠㅠ</div></div>