有两个程序:一个是服务器端。一个是客户端。
首先是运行服务器,服务器代码:
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();
}
}
}