Java网络编程-实现客户端与服务器一对一循环聊天.
原创约 652 字大约 2 分钟...
249-Java网络编程-实现客户端与服务器一对一循环聊天..md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
示例代码
package com.tencent.chapter05;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
//服务器
public class B_Server {
public static void main(String[] args) {
ServerSocket ss = null;
Socket socket = null;
try {
//1.启动服务器
ss = new ServerSocket(8888);
System.out.println("服务器已启动....");
//2.等待客户端连接
socket = ss.accept();//阻塞式方式,直到客户端连接进来,后续代码才能继续执行
System.out.println("有新的客户端连接进来........" + socket.getInetAddress() + ":" + socket.getPort());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //字符流 一行一行读取数据
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); //字符流 一行一行输出数据
while(true)
{
//5.接收客户端发送的消息
String message = reader.readLine();
System.out.println("客户端说:" + message);
//判断客户端是否下线
if("exit".equals(message))
{
System.out.println("----------【公告:客户端已下线】-----------------");
}
//6.给客户端发送消息
Scanner scanner = new Scanner(System.in);
System.out.println("服务端,请输入:");
String sendMessage = scanner.nextLine();
writer.println(sendMessage);
writer.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally{
//8.关闭资源、释放资源
try {
if(socket != null)
{
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(ss != null)
{
ss.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.tencent.chapter05;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
//客户端
public class B_Client {
public static void main(String[] args) {
Socket socket = null;
try {
//3.连接服务器
socket = new Socket("127.0.0.1",8888);//localhost 127.0.0.1表示本机 也可以写具体的IP地址
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); //字符流 一行一行输出数据
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //字符流 一行一行读取数据
while(true)
{
//4.给服务器发送消息
Scanner scanner = new Scanner(System.in);
System.out.println("客户端,请输入:");
String sendMessage = scanner.nextLine();
writer.println(sendMessage);
writer.flush();
//判断如果客户端输入"exit",表客户端准备退出
if("exit".equals(sendMessage))
{
break;
}
//7.接收服务器消息
String message = reader.readLine();
System.out.println("服务端说:" + message);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//8.关闭资源、释放资源
try {
if(socket != null)
{
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
实现效果

分割线
相关信息
以上就是我关于 Java网络编程-实现客户端与服务器一对一循环聊天 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。
Powered by Waline v2.15.4