Socketは小さなチャットプログラムをプログラミングします


2つのプログラムがあります.1つはサーバ側です.一つはクライアントです.
まず、サーバを実行します.サーバコード:
import java.io.*;
import java.net.*;
import java.util.Scanner;

public class TestTalkServer {
	public static void main(String[] args) {
		InputStream in = null;
		OutputStream out = null;
		Scanner scan = new Scanner(System.in);
		try{
			ServerSocket ss = new ServerSocket(6888);
			Socket socket = ss.accept();
			in = socket.getInputStream();
			out = socket.getOutputStream();
			DataInputStream dis = new DataInputStream(in);
			DataOutputStream dos = new DataOutputStream(out);
			String s = null;
			// 。 
			s = dis.readUTF();
			System.out.println(s);
			// 
			String sIn = null;
			sIn = scan.nextLine();
			while(!(sIn.equals("bye"))){
				// 
				dos.writeUTF(sIn);
				
				// 
				s = dis.readUTF();
				System.out.println(s);
				// 
				System.out.println(" ");
				sIn = scan.nextLine();
			}
			dos.close();
			dis.close();
		}catch(IOException e){
			e.printStackTrace();
		}
	}
}

クライアントコード:
import java.net.*;
import java.io.*;
import java.util.*;
public class TestTalkClient {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		InputStream is = null;
		OutputStream os = null;
		try{
			Socket socket = new Socket("localhost", 6888);
			is = socket.getInputStream();
			os = socket.getOutputStream();
			DataInputStream dis = new DataInputStream(is);
			DataOutputStream dos = new DataOutputStream(os);
			String sIn = null;
			String sOut = null;
//			sOut = dis.readUTF();
			System.out.println(" , ");
			sIn = scan.nextLine();
			while(!sIn.equals("bye")){
				// 
				dos.writeUTF(sIn);
				
				// 
				sOut = dis.readUTF();
				System.out.println(sOut);
				
				System.out.println(" ?");
				sIn = scan.nextLine();
			}
			
			dis.close();
			dos.close();
		}catch(UnknownHostException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
	}
}

実行時には、まずクライアントに情報を書き、サーバから情報を書きます.一言一言のコミュニケーションしかできません.「bye」と書いて会話を終了します.