标签:style blog color io os 使用 java ar 数据
1.
1 ServerSocket ss = new ServerSocket(port); 2 while(true){ //如果有客户端的连接请求,将执行下面的操作 3 Socket client = ss.accept(); //新建客户端对象 4 Handle handle = new Handle(client);//启动个客户端线程,并且一直监听,直到退出,若有多个客户端请求,则会新建多个客户端线程,由此实现多线程 5 } 6 7 8 public class Handle implements Runnable{ 9 Socket socket; 10 public Handle(Socket socket){ 11 this.socket = socket; 12 new Thread(this).start(); 13 } 14 public void run(){ 15 try{ 16 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 17 writer.write("返回服务器处理的消息给客户端"); 18 writer.flush(); 19 writer.close();//关闭这个socket 20 21 } catch (Exception e){ 22 } 23 }
2
为了方便用户使用Socket进行通信,Java把Socket封装成了类。如果查看Socket类的源码,代码是比较长的。我们这里创建了一个Socket_来表示下它。
1 public class Socket_ { 2 3 public Socket_() { 4 } 5 6 public Socket_(Proxy proxy) { 7 } 8 9 public Socket_(SocketImpl impl) { 10 } 11 12 public Socket_(String host, int port) { 13 } 14 15 public Socket_(InetAddress addr, int port) { 16 } 17 18 public Socket_(String host, int port, InetAddress localAddr, int localPort) { 19 } 20 21 public Socket_(InetAddress addr, int port, InetAddress localAddr, 22 int localPort) { 23 } 24 25 public InputStream getInputStream() { 26 return null; 27 } 28 29 public OutputStream getOutputStream() { 30 return null; 31 } 32 33 }
这样我们可以对Socket类有了大致的了解,对于一般用户只要知道这个套接字能够连接到另一台计算机,并能够获取数据输入输出流着就足够了。
1 import java.io.IOException; 2 import java.io.InputStream; 3 import java.net.Socket; 4 import java.net.UnknownHostException; 5 6 public class TestSocket { 7 8 public static final int BUF_SIZE = 1024; 9 10 public static void main(String[] args) { 11 try { 12 Socket socket = new Socket("localhost", 5000); 13 InputStream input = socket.getInputStream(); 14 15 // 好了,接下来就是InputStream对象的事了 16 // 就像以前介绍的那样,我们将获得大量的数据流 17 // 哈哈,准备接收数据吧 18 // 这次我们考虑InputStream流的read(byte[] b)方法 19 20 byte[] buf = new byte[BUF_SIZE]; 21 int readCount = 0; 22 while ((readCount = input.read(buf)) != 0) { 23 //处理数据buf 24 } 25 26 } catch (UnknownHostException e) { 27 e.printStackTrace(); 28 } catch (IOException e) { 29 e.printStackTrace(); 30 } 31 32 } 33 34 }
标签:style blog color io os 使用 java ar 数据
原文地址:http://www.cnblogs.com/xuanyuanzhuo-blog/p/3984664.html