当前位置: 代码迷 >> 综合 >> Java基础 -> (TCP)客户端,服务器端(简单传输数据“我是爸爸“),Socket
  详细解决方案

Java基础 -> (TCP)客户端,服务器端(简单传输数据“我是爸爸“),Socket

热度:25   发布时间:2023-12-16 10:08:33.0
	/*** 端口号:识别不同的进程(应用)* IP+端口号:socket类,参数就是(IP,端口号)*/

服务器端

   @Test//服务器端public void testServer() {
    ServerSocket serverSocket = null;Socket accept = null;InputStream acceptInputStream = null;ByteArrayOutputStream byteArrayOutputStream = null;try {
    //设置服务器端口号,与客户的端口号匹配serverSocket = new ServerSocket(8899);//Socket accept()//侦听对此套接字的连接并接受它。//侦听对此套接字(端口)的连接并接受它。 该方法将阻塞,直到建立连接。accept = serverSocket.accept();//获取输入流,读取两个端口通道中的数据,传过来的数据acceptInputStream = accept.getInputStream();//一个输出流,处理接收到的数据,将数据存入自身类的byte[]中,数据不是输出到文件,而是输出到本类的数组中byteArrayOutputStream = new ByteArrayOutputStream();byte[] bytes = new byte[1024];int len;while ((len = acceptInputStream.read(bytes)) != -1) {
    byteArrayOutputStream.write(bytes, 0, len);}} catch (IOException e) {
    e.printStackTrace();} finally {
    //关闭byteArrayOutputStream,acceptInputStream,accept,serverSocketif (byteArrayOutputStream != null) {
    try {
    byteArrayOutputStream.close();} catch (IOException e) {
    e.printStackTrace();}}if (acceptInputStream != null) {
    try {
    acceptInputStream.close();} catch (IOException e) {
    e.printStackTrace();}}}System.out.println(byteArrayOutputStream.toString());//我是爸爸System.out.println(accept.getInetAddress());// /10.212.10.194}

客户端

    @Test//客户端public void testClient() {
    Socket socket = null;OutputStream socketOutputStream = null;try {
    //ip地址(服务器的地址)要输入正确,否则连接不上socket = new Socket(InetAddress.getByName("10.212.10.194"), 8899);//获取输出流,将数据传入端口通道,传出去的数据socketOutputStream = socket.getOutputStream();//输出socketOutputStream.write("我是爸爸".getBytes());} catch (IOException e) {
    e.printStackTrace();} finally {
    //socketOutputStream,socket 都要关闭if (socketOutputStream != null) {
    try {
    socketOutputStream.close();} catch (IOException e) {
    e.printStackTrace();}}}}
  相关解决方案