客户端:
① 创建Socket对象,指明需要连接的服务器的地址和端口号
② 连接建立后,通过输出流向服务器端发送请求信息
③ 通过输入流获取服务器响应的信息
④ 关闭响应资源
public class ClientApp {
public static void main(String[] args) throws IOException {
Socket socket=new Socket("localhost",21341);
OutputStream os = socket.getOutputStream();//字节输出流
Scanner sc=new Scanner(System.in);
while (sc.hasNext()){
String str=sc.next();
System.out.println(str);
os.write(str.getBytes());
}
}
}
服务器端:
① 创建ServerSocket对象,绑定监听端口
② 通过accept()方法监听客户端请求
③ 连接建立后,通过输入流读取客户端发送的请求信息
④ 通过输出流向客户端发送响应信息
⑤ 关闭相关资源
public class ServerApp {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(21341);
//2、调用accept()方法开始监听,等待客户端的连接
Socket socket = serverSocket.accept();
//3、获取输入流,并读取客户端信息
InputStream is = socket.getInputStream();
while (true) {
if (is.available() > 0) {
System.out.println(is.read() + " reamin:" + is.available());
}
}
}
}
交互的消息
//交互:客户端
@SuppressWarnings("all")
public class ClientApp {
public static void main(String[] args) throws IOException {
final Socket socket = new Socket("localhost", 21341);
final OutputStream os = socket.getOutputStream();//字节输出流
final InputStream is = socket.getInputStream();
Thread readThread = new Thread(new Runnable() {
public void run() {
Scanner sc = new Scanner(is);
while (sc.hasNext()) {
String str = sc.next();
System.out.println(str);
}
}
});
readThread.start();
Scanner sc=new Scanner(System.in);
PrintWriter pw=new PrintWriter(os);
while (sc.hasNext()){
pw.println(sc.nextLine());
pw.flush();
}
}
}
//服务器端
@SuppressWarnings("all")
public class ServerApp {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(21341);
//2、调用accept()方法开始监听,等待客户端的连接
Socket socket = serverSocket.accept();
final OutputStream os = socket.getOutputStream();//字节输出流
final InputStream is = socket.getInputStream();
Thread readThread = new Thread(new Runnable() {
public void run() {
Scanner sc = new Scanner(is);
while (sc.hasNext()) {
String str = sc.next();
System.out.println(str);
}
}
});
readThread.start();
Scanner sc=new Scanner(System.in);
PrintWriter pw=new PrintWriter(os);
while (sc.hasNext()){
pw.println(sc.nextLine());
pw.flush();
}
}
}