package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class ChatServer { public static void main(String[] args) throws Exception { // 创建一个服务器 ServerSocket ss = new ServerSocket(9090); System.out.println("服务器已上线,等待客户端连接..."); Socket sk = ss.accept(); System.out.println("客户端已经连接"); Scanner mys = new Scanner(System.in); System.out.println("请输入您要发送的信息:"); String str = mys.next(); // 打开客户端字节流 OutputStream os = sk.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(str); bw.newLine(); bw.flush(); // 打开读取的字节流 InputStream is = sk.getInputStream(); // 字节流转换为字符流量 InputStreamReader isr = new InputStreamReader(is); // 添加buffered BufferedReader br = new BufferedReader(isr); String sa = br.readLine(); System.out.println("客户端:"+sa); } }
时间: 2024-04-01 20:36:19 浏览: 26
这是一个简单的 Java 程序,实现了一个基本的聊天服务器。程序首先创建了一个 ServerSocket 对象,并将其绑定到端口 9090。然后程序等待客户端的连接,一旦有客户端连接,程序就会打印出相应的信息。接着程序会让用户输入要发送的信息,并将其发送到客户端。程序也会从客户端读取信息,并打印出来。其中使用了 Java 的输入输出流和网络编程相关类。
相关问题
ChatClient.java程序: package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ChatClient { Public static void main(String[] args) throws UnknownHostException IOException { Socketsk=newSocket(InetAddress.getByName("127.0.0.1"),9090); //打开读取的字节流 InputStream is = sk.getInputStream(); //字节流转换为字符流量 InputStreamReader isr=new InputStreamReader(is); //添加buffered BufferedReader br=new BufferedReader(isr); String str = br.readLine(); System.out.println("服务器:"+str); //定义一个输入器 Scanner mys=new Scanner(System.in); System.out.println("请输入您要发送的内容:"); String sa=mys.next(); OutputStream os = sk.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(sa); bw.newLine(); bw.flush(); } }
这段代码是一个简单的聊天客户端程序,它会连接到本地IP地址为127.0.0.1,端口号为9090的服务端程序,并发送一条消息。具体来说,它的执行过程如下:
1. 创建一个Socket对象,指定要连接的服务端的IP地址和端口号;
2. 通过Socket对象获取输入流,然后将字节流转换为字符流,再添加缓冲区,最后读取服务端发送过来的一行消息;
3. 创建一个Scanner对象,让用户输入要发送的消息;
4. 通过Socket对象获取输出流,然后将字符流转换为字节流,再添加缓冲区,最后将用户输入的消息发送给服务端。
需要注意的是,这段代码只是一个简单的示例,实际上在真正的聊天应用中还需要考虑很多其他的因素,如多个客户端同时连接、消息的序列化和反序列化、消息的广播等等。
package srsc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class Srsc { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String filePath = "D:\\test.txt"; BufferedWriter bw = new BufferedWriter(new FileWriter(filePath)); Scanner scanner = new Scanner(System.in); String name = scanner.next(); String gender = scanner.next(); int age = scanner.nextInt(); Student stu = new Student(name, gender, age); bw.write(stu.toString()); bw.newLine(); BufferedReader br = new BufferedReader(new FileReader(filePath)); String rline; while((rline = br.readLine()) != null) { System.out.println(rline); } bw.close(); br.close(); scanner.close(); } }为什么没有输出到控制台
这是因为在程序中没有使用 `System.out.println()` 或 `System.out.print()` 方法将文本输出到控制台。在程序中,您已经将学生信息写入了文件,并在文件中读取了该信息,但是您需要使用 `System.out.println()` 或 `System.out.print()` 方法将其输出到控制台。
您可以在 `while` 循环中添加以下代码:
```
while((rline = br.readLine()) != null) {
System.out.println(rline); // 将每一行的文本输出到控制台
}
```
这样就可以将文件中的信息输出到控制台了。
阅读全文