服务器接收客户端发送的消息
服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// 创建服务,注意端口号
ServerSocket server = new ServerSocket(8989);
System.out.println("等待连接=====");
// 创建通信套接字
Socket socket = server.accept();
System.out.println("连接成功----");
// 创建通信流
BufferedReader bufferedReader = null;
String talk = "";
while(!talk.equals("#")) {
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while((talk = bufferedReader.readLine()) != null ) {
System.out.println("客户端说:" + talk);
System.out.println("-------------------");
}
}
bufferedReader.close();
socket.close();
server.close();
}
}
客户端:
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("127.0.0.1",8989);
System.out.println("请求连接成功-----");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
String talk = "";
while(!talk.equals("#")) {
System.out.println("请输入对话:");
talk = new Scanner(System.in).next();
pw.println(talk);
pw.flush();
}
pw.close();
socket.close();
}
}
运行服务器端:
运行客户端:
服务器端接收客户发来的消息:
服务器和客户端互发消息
服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Server {
public static void main(String[] args) throws IOException {
// 先创建服务器 设置端口
ServerSocket server = new ServerSocket(8888);
System.out.println("-----服务器启动成功-------------");
// 获得链接
System.out.println("-----等待客户端的链接------------");
Socket socket = server.accept();
System.out.println("----------链接成功------------");
// 输出流
PrintWriter writer = null;
// 输入流
BufferedReader reader = null;
// 约定
String talk = "";
while (!talk.equals("拜拜")) {
// 现获得客户端说的话
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 对话流
writer = new PrintWriter(socket.getOutputStream());
if ((talk = reader.readLine()) != null) {
System.out.println("客户端:" + talk);
}
// 自己说(服务器)
System.out.println("请输入:");
talk = new Scanner(System.in).nextLine();
// 发送
writer.println(talk);
writer.flush();
}
// 释放资源
writer.close();
reader.close();
socket.close();
server.close();
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
// 创建通信套接字
Socket socket = new Socket("127.0.0.1", 8888);
System.out.println("-----------与服务器链接成功---------------");
// 创建流变量
// 输出流
PrintWriter writer = null;
// 输入流
BufferedReader reader = null;
// 数据
String speak = "";
while (!speak.equals("拜拜")) {
writer = new PrintWriter(socket.getOutputStream());
// 现获得客户端说的话
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("请输入:");
speak = new Scanner(System.in).nextLine();
writer.println(speak);
writer.flush();
// 获得服务器的对话
speak = reader.readLine();
if (speak != null) {
System.out.println("服务器说:" + speak);
}
}
reader.close();
writer.close();
socket.close();
}
}
运行服务器:
运行客户端:
服务器收到客户端发来的消息,并且可以给客户端发消息,实现通信。
友好结束,客户端和服务器端都发送“拜拜”之后,就友好结束进程。