求各位: (编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后
求各位:(编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后,监听端口5678的请求,客户端程序启动后,向服务器端口5678发送请求。...
求各位: (编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后,监听端口5678的请求,客户端程序启动后,向服务器端口5678发送请求。服务器不断接受客户机所写入的信息,并些服务器也会做出“Receive”为回应,告知客户机已接受到信息。)要求:服务器程序采用多线程开发,允许多个客户端程序同时连接。客户机发送“End”字符串时,客户端程序退出。(服务端程序和客户端程序分别命名为Server.java和Client.java)
展开
2个回答
2014-01-03
展开全部
import java.io.BufferedReader;请参考
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
new Server().start();
}
public void start( ) {
Socket s = null;
ServerSocket ss = null;
try {
ss = new ServerSocket(5678);
System.out.println("侦听端口 5678...");
while((s = ss.accept())!=null){
new ReadThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(ss!=null){
ss.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ReadThread extends Thread{
Socket s;
public ReadThread(Socket s){
this.s=s;
}
public void run(){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter wr = new PrintWriter(s.getOutputStream());
String line;
while((line=br.readLine())!=null){
wr.println("Receive");
wr.flush();
if("exit".equalsIgnoreCase(line)){
break;
}
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
if(s!=null){
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询