TCPプロトコル:クライアントとサービス側の一問一答チャット
5515 ワード
需要:クライアントとサービス側が一問一答してチャットする
1.クライアントプログラムコード:
2.サービス側コード:
1.クライアントプログラムコード:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
/* 1. BuffrerdReader readline \r
。 2. flush 。 */
//
public class ChatClient {
public static void main(String[] args) throws IOException {
// tcp
Socket socket = new Socket(InetAddress.getLocalHost(),9090);
// socket 。
OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
// socket
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// ,
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
// ,
while((line = keyReader.readLine())!=null){
socketOut.write(line+"\r
");
//
socketOut.flush();
//
line = socketReader.readLine();
System.out.println(" :"+line);
}
//
socket.close();
}
}
2.サービス側コード:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
/* */
public class ChatServer {
public static void main(String[] args) throws IOException {
// tcp
ServerSocket serverSocket = new ServerSocket(9090);
// , SOcket
Socket socket = serverSocket.accept();
//accept() , , 。
// Socket
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// Socket
OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
//
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
//
String line = null;
while((line = socketReader.readLine())!=null){
System.out.println(" :"+ line);
System.out.println(" :");
line = keyReader.readLine();
socketOut.write(line+"\r
");
socketOut.flush();
}
//
serverSocket.close();
}
}