项目场景:
TCP的server和client
问题描述
Server.java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
class Server {
public static void main(String[] args) throws IOException {
System.out.println("服务端启动了");
ServerSocket serverSocket = new ServerSocket(7777);
Socket accept = serverSocket.accept();//服务端接收客户端消息
// accept等着客户端发送消息,如果客户端一直没有发送,就阻塞线程向下执行
// 先接受
InputStream is = accept.getInputStream();
OutputStream os = accept.getOutputStream();
Scanner scanner = new Scanner(System.in);
while (true) {
byte[] bs = new byte[1024];
int num = is.read(bs);
String str = new String(bs, 0, num);
System.out.println("客户端发送过来的信息" + str);
// 后发送
System.out.println("请输入给客户端的回复");
String str2 = scanner.next();
os.write(str2.getBytes());
os.flush();
// 关闭流和socket
// is.close();
// accept.close();
// serverSocket.close();
}
}
}
Client.java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("192.168.1.23", 7777);
OutputStream os = socket.getOutputStream();
InputStream is = socket.getInputStream();
// 先发送
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入要发送给服务端的信息");
String str = sc.next();
os.write(str.getBytes());
os.flush();
// 后接收用数据流
byte[] bs = new byte[1024];
int num = is.read(bs);
String str2 = new String(bs, 0, num);
System.out.println("服务端给的回复" + str2);
// os.close();
// socket.close();
}
}
}
版权声明:本文为weixin_43798721原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。