JAvaはsocketのプログラミングを実現する

2162 ワード

TCPベースのJava Socketプログラミングを実現し、機能は簡単である:クライアントはサーバ側に「connect」を出力し、サーバ側は出力をコンソールに受信し、クライアントに「Hello」を出力し、クライアントは受信して出力する.
package javase.net.socket;  

import java.io.DataInputStream;  
import java.io.DataOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.net.ServerSocket;  
import java.net.Socket;  

public class TCPServer {  
    public static void main(String[] args) {  
        try {  
            ServerSocket serverSocket = new ServerSocket(8888);  
            Socket socket = serverSocket.accept();  
            //          
            InputStream info = socket.getInputStream();  
            DataInputStream dis = new DataInputStream(info);  
            System.out.println(dis.readUTF());  

            //           
            OutputStream os = socket.getOutputStream();  
            DataOutputStream dos = new DataOutputStream(os);  
            dos.writeUTF("Hello!");  
            dos.flush();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}  

2.クライアント:
package javase.net.socket;  

import java.io.DataInputStream;  
import java.io.DataOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.net.Socket;  
import java.net.UnknownHostException;  

public class TCPClient {  
    public static void main(String[] args) {  
        try {  
            Socket socket = new Socket("192.168.1.123", 8888);  
            //            
            OutputStream os =  socket.getOutputStream();  
            DataOutputStream bos = new DataOutputStream(os);  
            bos.writeUTF("Connect");  
            bos.flush();  

            //           
            InputStream is = socket.getInputStream();  
            DataInputStream dis = new DataInputStream(is);  
            System.out.println(dis.readUTF());  
        } catch (UnknownHostException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}