JAVA网络通信底层调用LINUX探究
前言:该博客花了我一个下午得心血,全部手打,路过给个赞,拒绝抄袭!!!!!!!!!!!!!!!!!!!!!!!!!
简单的SOCKET通信程序
先从一段简单的JAVA程序性开始写起,这里我们才用半双工的形式,这里的半双工意思是客户端可以给服务端发送数据,发完数据就关闭,而服务端可以一直接受数据
我们使用多线程方式,这个不重要
下面是线程类
1 public class SocketThread implements Runnable { 2 public SocketThread(Socket socket) { 3 this.socket = socket; 4 } 5 6 private Socket socket; 7 @Override 8 public void run() { 9 InputStream inputStream = null; 10 InputStreamReader inputStreamReader = null; 11 BufferedReader bufferedReader = null; 12 try { 13 inputStream = socket.getInputStream(); 14 inputStreamReader = new InputStreamReader(inputStream); 15 bufferedReader = new BufferedReader(inputStreamReader); 16 char buf[] = new char[1024]; 17 int len=0; 18 while ((len=bufferedReader.read(buf))!=-1){ 19 for(int i=0;i<len;i++){ 20 System.out.print(buf[i]); 21 } 22 System.out.println(); 23 } 24 }catch (Exception e){ 25 e.printStackTrace(); 26 }finally { 27 try { 28 inputStream.close(); 29 inputStreamReader.close(); 30 bufferedReader.close(); 31 } catch (IOException e) { 32 e.printStackTrace(); 33 } 34 } 35 } 36 }
说实话,这个博客园的博客丑的一B,为什么不能提交CSDN的博客呢?
服务端代码:
1 public class Server { 2 public static void main(String[] args) { 3 try{ 4 ServerSocket serverSocket = new ServerSocket(8888