Java实现TCP/IP协议的收发数据(服务端)代码实例

 更新时间:2019年11月28日 14:33:43   作者:农名工进城  
这篇文章主要介绍了Java实现TCP/IP协议的收发数据(服务端)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Java实现TCP/IP协议的收发数据(服务端)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

功能如下:

注:

只有服务端,没有客户端,测试时采用第三方软件作为客户端的。

收发数据目前能正常收发数据,只是中文的会变成乱码显示。

采用Thread类实现一个收发数据的线程。

服务端代码:

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

public class Server {
  //监听端口
  private static final int PORT = 60020;

  public static void main(String[] args) throws IOException {
    ServerSocket serverSocket = null;
    Socket socket = null;
    try {
      //建立服务器的Socket,并设定一个监听的端口PORT
      serverSocket = new ServerSocket(PORT);
      //由于需要进行循环监听,因此获取消息的操作应放在一个while大循环中
      while(true){
         try {
          //建立跟客户端的连接
          socket = serverSocket.accept();
         } catch (Exception e) {
           System.out.println("建立与客户端的连接出现异常");
           e.printStackTrace();
         }
         ServerThread thread = new ServerThread(socket);
         thread.start();
      }
    } catch (Exception e) {
      System.out.println("端口被占用");
      e.printStackTrace();
    }    
    finally {
      serverSocket.close();
    }
  }
}

//服务端线程类
//继承Thread类的话,必须重写run方法,在run方法中定义需要执行的任务。
class ServerThread extends Thread {
  private Socket socket ;
  InputStream inputStream;
  OutputStream outputStream;
  
  public ServerThread(Socket socket){
    this.socket=socket;
  }
  public void run(){
    try {
      while (true){
        //接收客户端的消息并打印
        System.out.println(socket);
        inputStream=socket.getInputStream();
        byte[] bytes = new byte[1024];
        inputStream.read(bytes);
        String string = new String(bytes);
        System.out.println(string);  
        
        //向客户端发送消息
        outputStream = socket.getOutputStream();
        outputStream.write("OK".getBytes());
        System.out.println("OK");
        
      }
    } catch (Exception e) {
      System.out.println("客户端主动断开连接了");
      //e.printStackTrace();
    }
    //操作结束,关闭socket
    try{
      socket.close(); 
    }catch(IOException e){
      System.out.println("关闭连接出现异常");  
      e.printStackTrace();
    }
  }
}

先开启服务端,再开启客户端,进行操作。

客户端:

(端口号选择“TCPClient”,远程填写IP地址和程序里设定好的端口“60020”,本地选择自己电脑的IP地址)

服务端:

注:

串口调试工具下载地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java中RocketMQ使用方法详解

    Java中RocketMQ使用方法详解

    这篇文章主要介绍了RocketMQ和Kafka在SpringBoot中的使用方法,以及如何保证消息队列的顺序性、可靠性以及幂等性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • @Validated和@Valid三种异常捕获处理方式

    @Validated和@Valid三种异常捕获处理方式

    这篇文章主要介绍了@Validated和@Valid三种异常捕获处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring:@Async注解和AsyncResult与CompletableFuture使用问题

    Spring:@Async注解和AsyncResult与CompletableFuture使用问题

    这篇文章主要介绍了Spring:@Async注解和AsyncResult与CompletableFuture使用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java根据URL下载文件到本地的2种方式(大型文件与小型文件)

    Java根据URL下载文件到本地的2种方式(大型文件与小型文件)

    这篇文章主要给大家介绍了关于Java根据URL下载文件到本地的2种方式,分别是大型文件与小型文件,避免内存溢出OOM,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Hibernate对数据库删除、查找、更新操作实例代码

    Hibernate对数据库删除、查找、更新操作实例代码

    本篇文章主要介绍了Hibernate对数据库删除、查找、更新操作实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JVM 方法调用之动态分派(详解)

    JVM 方法调用之动态分派(详解)

    下面小编就为大家带来一篇JVM 方法调用之动态分派(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • spring aop底层源码执行逻辑剖析(源码解析)

    spring aop底层源码执行逻辑剖析(源码解析)

    这篇文章主要介绍了spring aop底层源码执行逻辑剖析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • Spring Boot深入学习数据访问之Spring Data JPA与Hibernate的应用

    Spring Boot深入学习数据访问之Spring Data JPA与Hibernate的应用

    Spring Data JPA是Spring Data的子项目,在使用Spring Data JPA之前,先了解一下Hibernate,因为Spring Data JPA是由Hibernate默认实现的
    2022-10-10
  • Java实现二分查找BinarySearch算法

    Java实现二分查找BinarySearch算法

    这篇文章主要介绍了Java实现二分查找BinarySearch算法,二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0,需要的朋友可以参考下
    2023-12-12
  • Maven基础知识大梳理

    Maven基础知识大梳理

    这篇文章主要是Maven基础知识大梳理,Maven主要是用来解决导入java类依赖的jar,编译java项目主要问题,大家可以读一读这篇文章,更深一步的了解Maven
    2021-08-08

最新评论