java中简单的服务器和客户端字符串的传输

//服务器端

public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {

    // TODO Auto-generated method stub
    Scanner input = new Scanner(System.in);
    try {
        while(true){
            //步骤1:创建Socket对象
            Socket s = new Socket("127.0.0.1",10086);
            System.out.println("客户端启动。。。");

            //步骤2:获取输入输出流
            OutputStream out = s.getOutputStream();
            InputStream in = s.getInputStream();

            //步骤3:处理数据

            System.out.print("客户端请输入消息:");
            String str = input.nextLine(); 
            out.write(str.getBytes());

            byte[] buf = new byte[1024];
            int len = in.read(buf);
            //String str = new String(buf);
            String str2 = new String(buf,0,len);

            System.out.println("客户端接收到信息:"+str2);
            if(str2.equals("exit")){
                System.out.println("客户端退出成功!!");
                break;
            }
            //步骤4:关闭资源
            out.close();
            in.close();
            s.close();
        }
    } catch (SocketException e) {
        // TODO Auto-generated catch block
        System.out.println("断开连接");
    }


}

}

//服务器端

public class Server {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
// 步骤1:创建ServerSocket,绑定端口
ServerSocket ss = new ServerSocket(10086);
// System.out.println(“服务器启动。。。”);
try {
while (true) {// 步骤2:监听Socket
Socket s = ss.accept();
// System.out.println(“监听到对象:”+s);

            // 步骤3:获取输入输出:
            InputStream in = s.getInputStream();
            OutputStream out = s.getOutputStream();

            // 步骤4:进行通讯,处理数据
            byte[] buf = new byte[1024];
            int len = in.read(buf);

            // String str = new String(buf);
            String str = new String(buf, 0, len);

            System.out.println("服务端接收到信息:" + str);
            if (str.equals("exit")) {
                System.out.println("服务端退出成功!!");
                break;
            }

            // String str2 = "你好啊,我是服务器端!";
            System.out.print("服务器端请输入消息:");
            String str2 = input.nextLine();
            out.write(str2.getBytes());

            // 步骤5:关闭资源
            in.close();
            out.close();
            s.close();
        }
    } catch (SocketException e) {
        // TODO Auto-generated catch block
        System.out.println("断开连接");

    }
}

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 网络编程,可以使用 Socket 和 ServerSocket 类来实现客户端和服务端之间的通信。如果要将字符串传送给客户端,可以通过输出流将字符串写入到客户端的 Socket 客户端再通过输入流读取数据。 以下是一个简单的示例代码,演示了如何将字符串传送给客户端: 服务端代码: ```java import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("服务器已启动,等待客户端连接..."); while (true) { Socket socket = serverSocket.accept(); System.out.println("客户端已连接:" + socket.getInetAddress()); // 向客户端发送字符串 OutputStream outputStream = socket.getOutputStream(); String message = "Hello, Client!"; outputStream.write(message.getBytes()); socket.close(); } } } ``` 客户端代码: ```java import java.io.IOException; import java.io.InputStream; import java.net.Socket; public class Client { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 8888); System.out.println("已连接到服务器:" + socket.getInetAddress()); // 从服务端接收字符串 InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String message = new String(buffer, 0, len); System.out.println("收到服务器发送的消息:" + message); socket.close(); } } ``` 在上述示例代码,服务端启动后,等待客户端连接。当客户端连接后,服务端向客户端发送了一个字符串客户端接收到字符串后,打印出来。 在服务端,通过 `socket.getOutputStream()` 获取输出流,然后将字符串转换为字节数组后写入到输出流。 在客户端,通过 `socket.getInputStream()` 获取输入流,然后读取输入流的数据,转换为字符串后打印出来。 需要注意的是,在实际开发,需要对网络连接和输入输出流进行异常处理。同时,需要考虑数据的编码格式和传输的安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值