package com.network;<br />import java.io.BufferedInputStream;<br />import java.io.BufferedOutputStream;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.io.InputStreamReader;<br />import java.io.OutputStream;<br />import java.io.OutputStreamWriter;<br />import java.net.InetSocketAddress;<br />import java.net.ServerSocket;<br />import java.net.Socket;<br />import java.util.Arrays;</p><p>public class ServerChat {<br />/**<br /> * @param args<br /> * @throws IOException<br /> */<br />public static void main(String[] args) throws IOException {<br />// TODO Auto-generated method stub</p><p>InetSocketAddress isa = new InetSocketAddress("10.140.86.98",5858);</p><p>ServerSocket server = new ServerSocket();</p><p> server.bind(isa);<br /> System.out.println("isBound: " + server.isBound());<br />System.out.println("SocketAddress: " + server.getLocalSocketAddress());</p><p>new Thread(new WorkingServer(server)).start();</p><p>while(true){<br />Socket client = server.accept();<br />System.out.println("this main thread");</p><p>InputStream in = client.getInputStream();</p><p>InputStreamReader read = new InputStreamReader(new BufferedInputStream(in));</p><p>OutputStream out = client.getOutputStream();</p><p>OutputStreamWriter write = new OutputStreamWriter( new BufferedOutputStream(out));</p><p>write.write("hello");<br />write.flush();</p><p>char [] cbuf = new char[100];<br />Arrays.fill(cbuf, '/0');<br />int len = read.read(cbuf, 0, 100);<br />StringBuilder sb = new StringBuilder(100);<br />sb.append(cbuf, 0, len);</p><p>System.out.println(sb.toString());</p><p>read.close();<br />client.close();<br />write.close();</p><p>}</p><p>}<br />}<br />
package com.network;<br />import java.io.BufferedInputStream;<br />import java.io.BufferedOutputStream;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.io.InputStreamReader;<br />import java.io.OutputStream;<br />import java.io.OutputStreamWriter;<br />import java.net.ServerSocket;<br />import java.net.Socket;<br />import java.util.Arrays;<br />public class WorkingServer implements Runnable {<br />private ServerSocket server;</p><p>WorkingServer(ServerSocket s){<br />server = s;<br />}</p><p>void communicat( Socket client) throws IOException{<br />System.out.println("this sub thread: " + Thread.currentThread().getId());</p><p>InputStream in = client.getInputStream();</p><p>InputStreamReader read = new InputStreamReader(new BufferedInputStream(in));</p><p>OutputStream out = client.getOutputStream();</p><p>OutputStreamWriter write = new OutputStreamWriter( new BufferedOutputStream(out));</p><p>write.write("hello");<br />write.flush();</p><p>char [] cbuf = new char[100];<br />Arrays.fill(cbuf, '/0');<br />int len = read.read(cbuf, 0, 100);<br />StringBuilder sb = new StringBuilder(100);<br />sb.append(cbuf, 0, len);</p><p>System.out.println(sb.toString());</p><p>read.close();<br />///client.close();<br />write.close();</p><p>}</p><p>@Override<br />public void run() {<br />// TODO Auto-generated method stub<br />System.out.println(Thread.currentThread());<br />while(true){<br />try {<br />Socket client = server.accept();<br />Thread.sleep(5000);<br />communicat(client);<br />} catch (IOException e) {<br />// TODO Auto-generated catch block<br />e.printStackTrace();<br />} catch (InterruptedException e) {<br />// TODO Auto-generated catch block<br />e.printStackTrace();<br />}<br />}<br />}<br />}<br />
package com.network;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.io.InputStreamReader;<br />import java.io.OutputStreamWriter;<br />import java.net.Socket;<br />import java.net.UnknownHostException;<br />public class ClientSock {<br />/**<br /> * @param args<br /> * @throws IOException<br /> * @throws UnknownHostException<br /> */<br />public static void main(String[] args) throws UnknownHostException, IOException {<br />// TODO Auto-generated method stub<br />Socket s = new Socket("10.140.86.98", 5858);</p><p>System.out.println( "remote socket " + s.getRemoteSocketAddress());</p><p>InputStream in = s.getInputStream();</p><p>InputStreamReader reader = new InputStreamReader(in);</p><p>char [] cbuf = new char[100];<br />int len = reader.read(cbuf);<br />StringBuilder sb = new StringBuilder(100);</p><p>sb.append(cbuf, 0, len);<br />System.out.println(sb.toString());</p><p>OutputStreamWriter writer = new OutputStreamWriter(s.getOutputStream());</p><p>writer.write("from client");</p><p>writer.close();<br />reader.close();<br />s.close();</p><p>}<br />}<br />