当前位置:编程学习 > JAVA >>

socket例子

今天看了下java网络通讯的API,了解了下java如何进行网络通讯的。
测试实例如下,首先构建了个监听的server:
import java.net.ServerSocket;
import java.net.Socket;
 
/**
 * @data 2011-9-7
 */
public class ListenServer {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        try{
            ServerSocket serverSocket = new ServerSocket(55888);
            System.out.println("Now ListenServer's listening at port 55888 ...");
            while(true){
                Socket sc = serverSocket.accept();
                System.out.println(sc.getInetAddress().getHostName() + " linked!");
                new Thread(new ProcessService(sc)).start();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
 
}
然后是多线程处理的服务类:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
 
/**
 * @data 2011-9-7
 */
public class ProcessService implements Runnable {
    
    private Socket socket = null;
    public ProcessService(Socket socket){
        this.socket = socket;
    }
    @Override
    public void run() {
        BufferedReader br = null;
        PrintWriter out = null;
        try{
            br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            out = new PrintWriter(this.socket.getOutputStream(),true);
            do{
                String msg = br.readLine();
                out.println(msg);
                if(msg.equals("exit")){
                    break;
                }
            }while(true);
            
        }catch(Exception e){
            e.printStackTrace();             
        }finally{
            try {
                br.close();
                out.close();
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }
 
}
最后是客户端类:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
 
/**
 * @data 2011-9-7
 */
public class Client {
 
    public static void main(String[] args) {
        Socket socket = null;
        BufferedReader br = null;
        PrintWriter pw = null;
        BufferedReader in = null;
        try{
            socket = new Socket(InetAddress.getLocalHost(),55888);
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pw = new PrintWriter(socket.getOutputStream(),true);
            in = new BufferedReader(new InputStreamReader(System.in));
            while(true){
                System.out.println("input:");
                String input = in.readLine();
                pw.println(input);
                String get = br.readLine();
                System.out.println("get:" + get);
                if(get.equals("exit")){
                    break;
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try {
                br.close();
                pw.close();
      

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,