Socketは小さなチャットプログラムをプログラミングします
2104 ワード
2つのプログラムがあります.1つはサーバ側です.一つはクライアントです.
まず、サーバを実行します.サーバコード:
クライアントコード:
実行時には、まずクライアントに情報を書き、サーバから情報を書きます.一言一言のコミュニケーションしかできません.「bye」と書いて会話を終了します.
まず、サーバを実行します.サーバコード:
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」と書いて会話を終了します.