import java.io.IOException;
import java.net.*; public class TCP_Server {
public static void main(String[] args) {
new ConnectionThread().start();
}
} class ConnectionThread extends Thread {
@Override
public void run() {
try {
ServerSocket ss = new ServerSocket(8989); while(true){
Socket s = ss.accept();
System.out.println("接收到一个用户的连接" + s.getInetAddress());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

目前,这个服务器端没有处理客户端发送的数据的功能,我们需要利用多线程接收处理客户端的数据。

构建一个线程类,构造方法中把Socket对象传递过来。

import java.io.IOException;
import java.io.InputStream;
import java.net.*; public class TCP_Server {
public static void main(String[] args) {
new ConnectionThread().start();
}
} class ConnectionThread extends Thread {
@Override
public void run() {
try {
ServerSocket ss = new ServerSocket(8989); while(true){
Socket s = ss.accept();
System.out.println("接收到一个用户的连接" + s.getInetAddress());
new ServerThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} class ServerThread extends Thread {
public ServerThread(Socket s){
this.s=s;
}
private Socket s =null;
@Override
public void run() { try {
InputStream ips = s.getInputStream();
byte[] buf = new byte[1024];
int length = -1;
System.out.println("-------------------------------");
System.out.println("来自"+s.getInetAddress()+"客户端的连接");
while((length = ips.read(buf))>-1)
System.out.println(new String(buf,0,length));
} catch (Exception e) {
e.printStackTrace();
} }
}

【Java】学习路径60-利用TCP协议接收多个客户端的数据的更多相关文章

  1. Java学习笔记之基于TCP协议的socket

    可以一直输入,而不是一问一答: 开两个线程,一个负责收,一个负责发. 1.先运行: package com.zr.javase0825; import java.io.BufferedReader; ...

  2. Java学习路径及练手项目合集

    Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 实验楼上的[Java 学习路径]中将首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE ...

  3. Ubuntu利用TCP协议来获取server时间

    Linux利用TCP协议来获取server时间 这里使用Unix网络编程里面的一个小程序,该client建立一个到server的TCP连接,然后读取由server以直观可读格式简单地送回的当前时间和日 ...

  4. Java学习路径(抛光砖)

    这就是我刚刚在五孔问答中找到的Java学习路线图抛光砖价格.我个人认为,这条Java学习路线是可以的.它是2018年相对较新的Java学习路线,更符合企业就业标准. Java学习路径的第一阶段:Jav ...

  5. 客户端验证、tcp协议中多个客户端的同时在线

    一.客户端验证 当在一个局域网内需要验证是否为合法的客户端连接时,我们需要写代码进行验证. Server端 import os import hmac import socket def auth(c ...

  6. java基础知识回顾之java Socket学习(二)--TCP协议编程

    TCP传输(传输控制协议):TCP协议是一种面向连接的,可靠的字节流服务.当客户端和服务器端彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能进行数据的传输.它将一台主机发出的字节流无差错的 ...

  7. Java学习路径:不走弯路,这是一条捷径

    1.如何学习编程? JAVA是一种平台.也是一种程序设计语言,怎样学好程序设计不只适用于JAVA,对C++等其它程序设计语言也一样管用.有编程高手觉得,JAVA也好C也好没什么分别,拿来就用.为什么他 ...

  8. 利用TCP协议,实现基于Socket的小聊天程序(初级版)

    TCP TCP (Transmission Control Protocol)属于传输层协议.其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送.可靠性.有效流控.全双工操作和多路复用 ...

  9. 终端参数上报后,平台通过tcp协议接收到相应数据并处理。

    终端将终端参数以json格式的数据发送至平台.终端上电后上报,可以不认证直接上报. 实现流程如下. 1.设置终端参数上报的协议类型,例如:0x0000. public static final int ...

随机推荐

  1. .NET中测试代码运行时间

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月29日. 计算代码运行的时间,除了呆萌地用秒表去计时,或者可以通过Visual Studio来查看,还可以在.NET代码中使用St ...

  2. 前缀和与差分(Acwing795-798)

    一维前缀和 Acwing795.前缀和 #include <iostream> using namespace std; const int N = 100010; int n, m; i ...

  3. Centos 创建新的虚拟环境

    1. conda env list 查看目前已经存在的虚拟环境,注意新取的虚拟环境的名字不能和目前已存在的虚拟环境的名字相同! 2. conda create -n [环境名] [指定python版本 ...

  4. Vue搭建后台系统需要做的几点(持续更新中)

    前言 持续更新 一.UI框架 推荐 Elemnet ui 二.图表 vue-schart npm install vue-schart -S <template> <div id=& ...

  5. Vue回炉重造之三次封装axios

    源码目录 在src目录下建立一个request文件夹.里面建立两个文件: http.js api.js 源码内容 http.js import axios from 'axios' // 引入axio ...

  6. HDLBits->Verilog Language->Modules:Hierarchy->Modules and vectors

    题目要求如上不再赘述,主要关注到最后的四选一多路选择器. 最初编写的选择器代码如下 always@(sel) case(sel) 2'd0:q <= d; 2'd1:q <= in1; 2 ...

  7. 使用阿里云RDS for SQL Server性能洞察优化数据库负载-初识性能洞察

    简介 数据库性能调优通常需要较高数据库水平,并伴随较多的前期准备工作,比如收集各种性能基线.不同种类的性能指标.慢SQL日志等,这通常费时费力且效果一般,当面对多个数据库时总体拥有成本会大幅增加.今天 ...

  8. SAP Table control

    REPORT RSDEMO02. * demostrates the use of table controls * unsolved problems: attributes left_col an ...

  9. Java实现无界面计算器

    ## 要求### 1.四个方法加减乘除### 1.循环加switch### 1.传递2个数源码如下: ``` public class Jisuanqi { public static void ma ...

  10. 我用Python做了一个咖啡馆数据分析

    在做案例前,我还想回答大家一个疑问,就是excel做数据分析可以实现Python一样的效果,那用Python的意义在哪呢? 经过这段时间学习理解,我的回答是: (https://jq.qq.com/? ...