socket短连接

服务端server

package com.test.socket;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * socket服务类
 */
public class SocketServer {

	public static void main(String[] args) throws Exception {
	    // 监听指定的端口
	    int port = 8903;
	    ServerSocket server = new ServerSocket(port);
	    
	    // server将一直等待连接的到来
	    System.out.println("server将一直等待连接的到来");
	    Socket socket = server.accept();
	    // 建立好连接后,从socket中获取输入流,并建立缓冲区进行读取
	    InputStream inputStream = socket.getInputStream();
	    byte[] bytes = new byte[1024];
	    int len;
	    StringBuilder sb = new StringBuilder();
	    //只有当客户端关闭它的输出流的时候,服务端才能取得结尾的-1
	    while ((len = inputStream.read(bytes)) != -1) {
	      // 注意指定编码格式,发送方和接收方一定要统一,建议使用UTF-8
	      sb.append(new String(bytes, 0, len, "UTF-8"));
	    }
	    System.out.println("get message from client: " + sb);

	    OutputStream outputStream = socket.getOutputStream();
	    outputStream.write("Hello Client,I get the message.".getBytes("UTF-8"));

	    inputStream.close();
	    outputStream.close();
	    socket.close();
	    server.close();
	  }
}	

客户端client

package com.test.socket;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class SocketClient {

	public static void main(String args[]) throws Exception {
	    // 要连接的服务端IP地址和端口
	    String host = "127.0.0.1";
	    int port = 8903;
	    // 与服务端建立连接
	    Socket socket = new Socket(host, port);
	    // 建立连接后获得输出流
	    OutputStream outputStream = socket.getOutputStream();
	    String message = "你好  yiwangzhibujian";
	    socket.getOutputStream().write(message.getBytes("UTF-8"));
	    //通过shutdownOutput高速服务器已经发送完数据,后续只能接受数据
	    socket.shutdownOutput();
	    
	    InputStream inputStream = socket.getInputStream();
	    byte[] bytes = new byte[1024];
	    int len;
	    StringBuilder sb = new StringBuilder();
	    while ((len = inputStream.read(bytes)) != -1) {
	      //注意指定编码格式,发送方和接收方一定要统一,建议使用UTF-8
	      sb.append(new String(bytes, 0, len,"UTF-8"));
	    }
	    System.out.println("get message from server: " + sb);
	    
	    inputStream.close();
	    outputStream.close();
	    socket.close();
	  }
}

猜你喜欢

转载自blog.csdn.net/weixin_43513644/article/details/83446661