我有一个服务器程序和两个客户端程序要进行互相的发送信息,当客户端连接到服务器时会显示客户端的名字,想了半天不知道怎么解决,麻烦大家看看希望多指点一下。谢谢了!!服务器程序:
public static void main(String [] args){
try{
System.out.println("服务器等待客户端连接...");
while(true){
ServerSocket serverSocket = new ServerSocket(1988);
Socket socket= serverSocket.accept();
//Socket socket2 = serverSocket.accept();
new TestServer(socket);
System.out.println("连接到客户端...");
//new TestServer(socket2);
BufferedReader br = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
while(true){
String str = br.readLine();
if(str.equals("exit")){
break;
}
System.out.println(str);
}
serverSocket.close();
socket.close();
br.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}class TestServer extends Thread{
//private String name;
private Socket socket;
public TestServer(Socket socket){
this.socket = socket;
//this.name = name;
this.start();
}
public void run(){
try{
PrintWriter pw = new PrintWriter(socket.getOutputStream());
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
while(true){
String str = br.readLine();
if(str.equals("ned")) break;
pw.println(str);
pw.flush();
}
pw.close();
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}客户端程序:(两个客户端程序差不多,就提供一个吧)package lesson01;
import java.io.*;
import java.net.*;public class Client01 {
public static void main(String [] args){
try{
System.out.println("客户端等待服务器请求连接...");
Socket coment = new Socket("127.0.0.1", 1988);
PrintWriter pw = new PrintWriter(coment.getOutputStream());
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
new TestClient(coment,"client01");
System.out.println("连接到服务器...");
while(true){
String str = br.readLine();
if(str.equals("exit")){
break;
}
pw.println(str);
pw.flush();
}
coment.close();
br.close();
pw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}class TestClient extends Thread{
private Socket socket;
private String name;
public TestClient(Socket socket, String name){
this.socket = socket;
this.name = name;
this.start();
}
public void run(){
try{
BufferedReader bw = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
while(true){
String str = bw.readLine();
if(str.equals("ned")){
break;
}
System.out.println(str);
}
socket.close();
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String [] args){
try{
System.out.println("服务器等待客户端连接...");
while(true){
ServerSocket serverSocket = new ServerSocket(1988);
Socket socket= serverSocket.accept();
//Socket socket2 = serverSocket.accept();
new TestServer(socket);
System.out.println("连接到客户端...");
//new TestServer(socket2);
BufferedReader br = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
while(true){
String str = br.readLine();
if(str.equals("exit")){
break;
}
System.out.println(str);
}
serverSocket.close();
socket.close();
br.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}class TestServer extends Thread{
//private String name;
private Socket socket;
public TestServer(Socket socket){
this.socket = socket;
//this.name = name;
this.start();
}
public void run(){
try{
PrintWriter pw = new PrintWriter(socket.getOutputStream());
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
while(true){
String str = br.readLine();
if(str.equals("ned")) break;
pw.println(str);
pw.flush();
}
pw.close();
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}客户端程序:(两个客户端程序差不多,就提供一个吧)package lesson01;
import java.io.*;
import java.net.*;public class Client01 {
public static void main(String [] args){
try{
System.out.println("客户端等待服务器请求连接...");
Socket coment = new Socket("127.0.0.1", 1988);
PrintWriter pw = new PrintWriter(coment.getOutputStream());
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
new TestClient(coment,"client01");
System.out.println("连接到服务器...");
while(true){
String str = br.readLine();
if(str.equals("exit")){
break;
}
pw.println(str);
pw.flush();
}
coment.close();
br.close();
pw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}class TestClient extends Thread{
private Socket socket;
private String name;
public TestClient(Socket socket, String name){
this.socket = socket;
this.name = name;
this.start();
}
public void run(){
try{
BufferedReader bw = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
while(true){
String str = bw.readLine();
if(str.equals("ned")){
break;
}
System.out.println(str);
}
socket.close();
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
PrintWriter pw = new PrintWriter(socket.getOutputStream(),true); //刷新输出缓冲区