SocketThread给服务端用的线程类:

public class SocketThread extends Thread{
private Socket socket; public SocketThread(Socket socket) {
this.socket=socket;
}
@Override
public void run() {
if(socket!=null) {
BufferedReader br=null;
try {
InputStream is = socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is,"utf-8"));
while(true) {
String data=br.readLine();
if(data==null) {//客户端已经关闭
break;
}
System.out.println(socket.getInetAddress()+"说:"+data);
if(data.equals("886")||data.equals("byebye")) {
break;
}
} } catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}finally {
try {
br.close();
socket.close();
System.out.println(socket.getInetAddress()+"退出了...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
}
}

TCPServer服务端:

public class TcpServer {
public static void main(String[] args) throws Exception {
//1创建ServerSocket
ServerSocket listener=new ServerSocket(10086);
//2调⽤accept(),接收客户端请求
System.out.println("服务器已启动..........");
while(true) {
Socket socket=listener.accept();
System.out.println(socket.getInetAddress()+"进来了.........");
//创建线程对象,负责接收数据
new SocketThread(socket).start();
}
}
}

TCPClient客户端:

public class TcpClient {
public static void main(String[] args) throws Exception {
//1创建Socket
Socket socket=new Socket("192.168.0.103", 10086);
//2获取输出流
OutputStream os=socket.getOutputStream();
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"utf-8"));
//3控制输⼊
Scanner input=new Scanner(System.in);
while(true) {
String data=input.nextLine();
bw.write(data);
bw.newLine();//发送换⾏符
bw.flush();
if(data.equals("886")||data.equals("byebye")) {
break;
}
}
//4关闭
bw.close();
socket.close();
}
}

TCP实现多个客户端发送数据给服务器端的更多相关文章

  1. SSH服务器与Android通信(3)--Android客户端发送数据

    Android客户端向SSH服务器发送数据主要有三种情况:通过客户端删除数据.添加数据和修改数据. 1.删除数据 先看看jsp文件里面是怎样删除数据的: <td align="cent ...

  2. server-sent-event使用流信息向客户端发送数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. C#模拟客户端发送数据示例

      在给一些客户端做服务器端支持时,发现他们提交上来的数据大都不是http请求格式,因而使用Request.Form获取不到内容,今天用C#做下模拟,并演示下数据接收. 1.发送文本 1).客户端发送 ...

  4. Java TCP服务端向客户端发送图片

    /** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...

  5. android socket 通讯(客户端) 发送数据

    /** ClientSocket通讯类 **/  public class ClientSocket  {     /**服务器地址*/     private String serverUrl=&q ...

  6. python使用socket向客户端发送数据的方法

    在使用locust测试长连接的时候,所有的请求全部faillure了,所以想到手动写一个连接脚本测试一下是否能连通 因为centos7自带python2.7所以用python写一个比较方便. #!/u ...

  7. java开发客户端发送请求到服务器端出现这样:JSON parse error: Unexpected character ('}' (code 125)): was expecting

    org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected cha ...

  8. node中一个基本的HTTP客户端向本地的HTTP服务器发送数据

    上一篇讲到了node可以轻松的向其他请求数据. 这一篇就来讲讲向本地服务器的数据交互. HTTP服务器代码,s.js var http=require("http"); var s ...

  9. [C#参考]利用Socket连续发送数据

    这个例子只是一个简单的连续发送数据,接收数据的DEMO.因为最近做一个项目,要求robot连续的通过Socket传回自己的当前的位置坐标,然后客户端接收到坐标信息,在本地绘制地图,实时显示robot的 ...

随机推荐

  1. 《HALCON数字图像处理》第六章笔记

    目录 第六章 图像增强 图像增强的概念和分类 灰度变换 直方图处理 图像的平滑 图像的锐化 图像的彩色增强 我在Gitee上建了个仓库,会将学习书本的时候打的一些代码上传上去,笔记中所有代码都在仓库里 ...

  2. CVPR2022 | 重新审视池化:你的感受野不是最理想的

    前言 本文提出了一种简单而有效的动态优化池操作( Dynamically Optimized Pooling operation),称为DynOPool,它通过学习每一层感受野的最佳大小和形状来优化特 ...

  3. React项目中使用less/scss&全局样式/变量

    使用create-react-app脚手架搭建初始化项目 > npm install -g create-react-app > npx create-react-app my-app c ...

  4. Docker容器手动安装mysql(国内镜像)

    Docker手动安装mysql 1.创建centos镜像的容器 [root@localhost Tools]# docker run -i -d -h zabbix --name zabbix -p ...

  5. 前端工作中用到的openlayers相关的公共方法

    /** * 获取地图上的图层对象 * @param map 地图对象 * @param layerName 实例化图层时的name * @return {null}*/ getLayerByLayer ...

  6. 使用cmd命令行执行MySQL数据库

    说明 用命令提示符来操作一些简单的数据库,便捷又快速,随便记录一下,以后没事就自己来看看! 哈哈哈! 打开/关闭mysql服务 net start mysql net stop mysql 连接mys ...

  7. Linux目录结构和文件类型

    文件系统目录结构 根(/)是所有文件的入口,类似于倒状的树 以 . 开头的文件为隐藏文件 文件路径之间用/分隔,包括路径在内文件名称最长4095个字节 文件名除了斜杠和NUL都可以,文件名的最大长度是 ...

  8. sql-DCL用户及权限管理及其他常用命令-mysql

    查看系统信息 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 SELECT now(), user(), version(); -- ...

  9. Qt数据可视化(散点图、折线图、柱状图、盒须图、饼状图、雷达图)开发实例

    ​  目录 散点图 折线图 柱状图 水平柱状图 水平堆叠图 水平百分比柱状图 盒须图 饼状图 雷达图 Qt散点图.折线图.柱状图.盒须图.饼状图.雷达图开发实例. 在开发过程中我们会使用多各种各样的图 ...

  10. JDBC:处理事务

    1.如何实现事务 如果现在希望对 A 表和 B 表同时删除某一个 id 号的记录,使这两个sql操作组成一个事务.(成功则同时成功,否则都失败) 注意:如果 B 表 建立了引用 A 表的id外键,并指 ...