编写一个使用 TCP/IP 协议建立线程通信的 Java 应用程序,要求服务器端与 客户端均具
编写一个使用 TCP/IP 协议建立线程通信的 Java 应用程序,要求服务器端与 客户端均具有发送与接受信息的功能, 由服务器端向客户端发送的信息是“东软 信息学院”,客户端接受该信息后将其修改为“大连东软信息大学”,然后再发送 给服务器端。
提示:
1)编写客户端和服务器两个类都要实现 Runnable 接口,所有操作在 run()方法中 实现。
2)要创建客户端和服务器两个线程,输入输出时分别调用 getInputStream()和 getOutputStream()。
package suannaigongyuan
;
import java.io.*;
import java.net.*;
import java.util.*;
public class q3095563063
{
public static void main(String[] args) throws IOException {
System.out.println("Server starting...\n");
// 创建一个端口号为 8888 的 ServerSocket
ServerSocket server = new ServerSocket(8888);
while (true) {
// 监听客户端的连接请求, 当建立连接时, 返回一个代表此连接的 Socket 对象
Socket s = server.accept();
System.out.println("Accepting Connection...\n");
new ServerThread(s).start();// 启动一个处理此连接的线程
}// while 结束
}// main 方法结束
}
class ServerThread extends Thread {
private Socket s;
ServerThread(Socket s) {
this.s = s;
}
public void run() {
BufferedReader br = null;
PrintWriter pw = null;
try {
InputStreamReader isr = new
InputStreamReader(s.getInputStream());
br = new BufferedReader(isr);
pw = new PrintWriter(s.getOutputStream(), true);
String name = br.readLine(); // 从客户端读入一行数据
System.out.println("用户" + name + "访问服务嚣");
pw.println("大连东软信息大学”);
} // 向客户端输出欢迎信息
catch (IOException e) {
System.out.println(e.toString());
} finally {
System.out.println("Closing Connection...\n");
}
// 关闭连接
try {
br.close();
pw.close();
s.close();
} catch (IOException e) {
}
}// run 方法结束
}
import java.io.*;
import java.net.*;
public class SSClient {
// 定义从键盘读入字符串的方法
static String readString() {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in), 1);
String string = "";
try {
string = br.readLine();
} catch (IOException ex) {
System.out.println(ex);
}
return string;
}
public static void main(String[] args) {
String host = "127.0.0. 1";
BufferedReader br = null;
PrintWriter pw = null;
Socket s = null;
try {
s = new Socket(host, 8888); // 创立一个端口号为 8888 的 Socket
InputStreamReader isr = new InputStreamReader(s.getInputStream());
br = new BufferedReader(isr);
pw = new PrintWriter(s.getOutputStream(), true);
System.out.println("请输入您的姓名: "); // 输入姓名
String name = readString();
pw.println(name); // 向服务器发送数据
// 向控制台输出服务器端输送过来的欢迎信息
System.out.println(br.readLine());
}// try 结束
catch (IOException e) {
System.out.println(e.toString());
} finally { // 关闭连接
try {
br.close();
pw.close();
s.close();
} catch (IOException e) {
}
}
}
}