功能如下:

注:

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

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

采用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地址)

服务端:

注:

串口调试工具下载地址(或者在本人的百度网盘下载)

https://www.qqxiazai.com/down/10117.html

TCP/IP网络编程之多进程服务端(二)

信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非阻塞等待子进程销毁的函数,但有一个不好的缺 ...

TCP/IP网络编程之多线程服务端的实现(二)

线程存在的问题和临界区 上一章TCP/IP网络编程之多线程服务端的实现(一)的thread4.c中,我们发现多线程对同一变量进行加减,最后的结果居然不是我们预料之内的.其实,如果多执行几次程序,会发现 ...

TCP/IP网络编程之多线程服务端的实现(一)

为什么引入线程 为了实现服务端并发处理客户端请求,我们介绍了多进程模型.select和epoll,这三种办法各有优缺点.创建(复制)进程的工作本身会给操作系统带来相当沉重的负担.而且,每个进程有独立的 ...

TCP/IP网络编程之多进程服务端(一)

进程概念及应用 我们知道,监听套接字会有一个等待队列,里面存放着不同客户端的连接请求,如果有一百个客户端,每个客户端的请求处理是0.5s,第一个客户端当然不会不满,但第一百个客户端就会有相当大的意见了 ...

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层:   这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为 ...

TCP/IP协议详解内容总结(怒喷一口老血)

TCP/IP协议(本文源自外部链接) TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络 ...

socket、tcp/ip协议、udp协议

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...

JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...

JAVA基础知识|TCP/IP协议

虽然写代码也有一定的年头了,但是对于一些基础概念,还是很模糊.这在后来的学习过程中,带来了很大的痛苦,所以痛定思痛,决心重新学习这些概念.并把自己的理解和查询的资料做一些整合,便于以后查阅! 一.什么 ...

随机推荐

Workload Automation分析及其使用

Workload Automation介绍 Workload Automation是提供一个在设备上运行各种workload的工具,使用Python编写.WA具有良好的框架结构,方便快捷的扩展.包含几 ...

C# 枚举类型操作

//定义一个枚举 public enum Colors { Red, Green, Blue, Yellow }; //根据key找value string name = Enum.GetName(t ...

Entity Framework 学习笔记(2)

上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// /// ...

“易信”今日正式更新至V1.1版

热门移动通讯社交应用“易信”今日正式更新至V1.1版,目前用户已可在苹果AppStore和各大Android商店下载.新版本主要包括三大变化:开通公众平台.提供外部分享.强化社交安全,此外包含好友关系 ...

Python day 06

day06 数据类型(四) 今日内容 集合 内存相关 深浅拷贝 补充 补充 列表 reverse,反转. v1 = [1,2,3111,32,13] print(v1) # [1,2,311,32,1 ...

c#异步编程(三)—ASP.NET MVC 异步控制器及EF异步操作

ASP.NET MVC 异步控制器及EF异步操作 异步控制器 ASP.NET MVC2后开始了对异步请求管道的支持,异步请求管道的作用是允许web服务器处理长时间运行的请求,比如 那些花费大量时间等待 ...

广搜 迷宫(zznu 1962)

http://acm.zznu.edu.cn/problem.php?id=1962 题目描述 在很多 RPG (Role-playing Games) 游戏中,迷宫往往是非常复杂的游戏环节.通常来说 ...

Hive插入数据的几种常用方法

Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...

pycharm设置安装python第三方插件

pycharm设置安装python第三方插件 转载于:https://www.mindg.cn/?p=80 今天下了一个pycharm,设置用它来安装python插件,以下是安装步骤,与大家分享,我的 ...

java服务器tcpip协议,Java 实现TCP/IP协议的收发数据(服务端)相关推荐

  1. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

  2. 因特网的协议集称为TCP/IP协议集

    1)因特网协议集 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  3. 协议系列之TCP/IP协议

    根据前面介绍的几种协议,将IP协议.TCP协议.UDP协议组合起来,于是便有了TCP/IP协议.现在很多的应用的通信都是建立在TCP/IP协议的基础上,运用非常广泛,很有必要对其学习一下. 打个不太恰 ...

  4. TCP/IP网络编程之多进程服务端(二)

    TCP/IP网络编程之多进程服务端(二) 信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非 ...

  5. TCP/IP网络编程之多进程服务端(一)

    TCP/IP网络编程之多进程服务端(一) 进程概念及应用 我们知道,监听套接字会有一个等待队列,里面存放着不同客户端的连接请求,如果有一百个客户端,每个客户端的请求处理是0.5s,第一个客户端当然不会 ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. 网络协议OSI、TCP/IP协议、Socket套接字和第三方AsyncSock的使用等解析

    一.网络协议定义 1.OSI参考模型:全称(Open System Interconnection), 开放式系统互联参考模型.是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为七层,只要目的是为 ...

  8. 如何查看计算机tcp ip协议,如何测试TCP/IP协议是否正常?

    如何测试TCP/IP协议是否正常?很多网络问题实际上并不是我们的硬件除了故障,而是TCP/IP协议出现了问题,这种东东是看不见摸不着的,我们怎样测试TCP/IP协议是否正常呢?很多朋友认为无从入手,实 ...

  9. java android 读写三菱PLC 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

  10. java服务器向客户端发消息_java一个简单的客户端向服务端发送消息

    java一个简单的客户端向服务端发送消息 客户端代码: package com.chenghu.tcpip; import java.io.IOException; import java.io.Ou ...

最新文章

  1. matlab科学计算及分析,matlab科学计算
  2. #pragma once与 #ifndef的区别 (转)
  3. [leetcode] 65. 有效数字
  4. ArcMap|地理探测器(geoDetector)前在ArcGIS中的处理
  5. Linux下9种优秀的代码比对工具推荐
  6. oracle数据库技术_创建 pdb数据库
  7. cgcs2000大地坐标系地图_CGCS2000坐标系和WGS84坐标系的区别联系
  8. Word的”交叉引用“和”插入题注“快捷键设置
  9. origin柱状图同时有两组数和两组数差值_教程 | Origin用矩阵绘制多层曲面映射图...
  10. Java压缩文件/文件夹
  11. yaml文件的加载使用
  12. ABC分类法在库存优化管理中的应用原理
  13. linux gpio接口函数,linux内核里的GPIO操作函数
  14. 软件测试学习之路-----文本编辑器和计算机基本命令笔记
  15. Android通过来电号码识别姓名。
  16. java 谷歌地图_如何使用java在浏览器上显示谷歌地图?
  17. python openssl 证书加解密过程感觉是这样
  18. 现代信息技术的特点和趋势
  19. FFT快速傅里叶变换C语言实现信号处理 对振动信号进行实现时域到频域的转换
  20. 怎样让一个正常人理解“线性代数”

热门文章

  1. python plot 图像大小_设置matplotlib图像的figsize和dpi
  2. Android 9 谷歌全面屏,跟虚拟导航栏说再见,安卓9.0将使用全面屏手势
  3. Android Studio多渠道打包和代码混淆教程
  4. Java反射探索研究
  5. 你竟然还不知道用Mac该改哪些配置?
  6. 专为影院打造,VR座椅让你体会坠机的感觉
  7. python注册热键_RegisterHotKey注册快捷键
  8. 程序员高铁上撸代码被拍,头发这么多,肯定不是程序员
  9. 女神节,买什么礼物可以保护眼睛?保护眼睛的护眼台灯分享
  10. 关于 canvas 画圆方法 arc() 方法的理解