import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
* 使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
*
* @author Tang
*
*/
public class Test10 {
public static void main(String[] args) {
new Thread() {
public void run() {
new Server().startServer();
};
}.start();
new Thread() {
public void run() {
new Client().sendMess();
};
}.start();
}
}
/**
* 服务器
*
* @author Tang
*
*/
class Server {
private ServerSocket serverSocket;
public Server() {
try {
serverSocket = new ServerSocket(5555);// 端口
} catch (Exception e) {
e.printStackTrace();
}
}
public void startServer() {
try {
handle(serverSocket.accept());
} catch (Exception e) {
e.printStackTrace();
}
}
private void handle(Socket socket) {
try {
byte[] bs = new byte[1024];
InputStream inputStream = socket.getInputStream();
for (int i = inputStream.read(bs); i >= 0; i = inputStream.read(bs)) {
System.out.println("服务器收到信息:" + new String(bs, 0, i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 客户端
*
* @author Tang
*
*/
class Client {
private Socket socket;
public Client() {
try {
socket = new Socket("127.0.0.1", 5555);// IP,端口
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMess() {
try {
OutputStream outputStream = socket.getOutputStream();
outputStream.write(getInputString().getBytes());
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private String getInputString() {
System.out.println("请输入一个信息:");
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
scanner.close();
return "客户端发送的信息" + str;
}
}
Java练习题-使用TCP协议完成一个客户端一个服务器
最新推荐文章于 2021-02-12 19:14:28 发布