Soket小试

越简单越好,网络编程简单理解就是两台计算机以某种方式相互通信。 java的sdk提供了相对简单的api来实现。 Soket就是其中之一。存在于java.net包里。

网络编程的基本模型就是C/S模型。 一个server建立好端口就在那监听消息,客户端也要知道server的具体位置(IP),然后往那里发送消息。 数据交换必然要用到I/O操作,无非就是借助缓冲读入写出。

   
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream())); 
  PrintWriter out=new PrintWriter(server.getOutputStream()); 


上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了.


server类:
package com.practice.soket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;


public class SoketServer { 
public static void main(String[] args) throws IOException{ 
 
    ServerSocket server=new ServerSocket(5678); 
    Socket client=server.accept(); 
    BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream())); 
    PrintWriter out=new PrintWriter(client.getOutputStream()); 
 
    while(true){ 
         String str=in.readLine(); 
         //System.out.println(str); 
         out.println("has received...." + str); 
         out.flush(); 
         if(str.equals("end")) 
         break; 
     } 
    
    client.close();
  }

} 



客户端:

package com.practice.soket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

public class ClientSoket{ 
static Socket server; 

public static void main(String[] args)throws Exception{ 
    server=new Socket(InetAddress.getLocalHost(),5678); 
    BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream())); 
    PrintWriter out=new PrintWriter(server.getOutputStream()); 
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in)); 

    while(true){ 
         String str=wt.readLine(); 
         out.println(str); 
         out.flush(); 
         if(str.equals("end")){ 
           break; 
         } 
         System.out.println(in.readLine()); 
    } 
    
   server.close(); 
  }

} 



你可能感兴趣的:(java,编程,.net,socket)