服务端程序:

public class Demo {

public static void main(String[] args) {

// TODO 自动生成的方法存根

try {

ServerSocket server =new ServerSocket(6666);

Socket client = null;

int i=0;

while(true) {

client = server.accept();

new Thread(new ServerThread(client)).start();

i++;

System.out.println("当前是第:"+i+"个用户连进来了。接入的客户端的IP地址:"+client.getInetAddress().getHostAddress());

}

} catch (Exception e) {    // TODO 自动生成的 catch 块    e.printStackTrace();   }  }

}

class ServerThread implements Runnable{

Socket client =null;

ServerThread(Socket temp){

this.client=temp;

}

@Override

public void run() {

// TODO 自动生成的方法存根

try {

InputStream in = client.getInputStream();

InputStreamReader reader = new InputStreamReader(in);

BufferedReader buff = new BufferedReader(reader);

String str="";

while((str=buff.readLine())!=null){

System.out.println("接受到客户端请求:"+str);

}

client.shutdownInput();

OutputStream out = client.getOutputStream();

PrintWriter p = new PrintWriter(out);

p.write("欢迎您");

p.flush();

reader.close();

in.close();

p.close();

out.close();

client.close();

} catch (IOException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

客户端程序:

public class Demo {

public static void main(String[] args) {

// TODO 自动生成的方法存根

try {

Socket client =new Socket(InetAddress.getLocalHost(),6666);

OutputStream out = client.getOutputStream();

String str="登录名:张三 密码:123";

out.write(str.getBytes());

out.flush();

client.shutdownOutput();

InputStream in = client.getInputStream();

InputStreamReader reader =new InputStreamReader(in);

BufferedReader buff =new BufferedReader(reader);

String request="";

while((request=buff.readLine())!=null) {

System.out.println("获取服务端返回:"+request);

}

out.close();

reader.close();

in.close();

client.close();

} catch (UnknownHostException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

} catch (IOException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

} }

JAVA SOCKET多线程等待接受客户端信息实现的更多相关文章

  1. java socket 多线程网络传输多个文件

    http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人 ...

  2. java Socket多线程聊天程序

    参考JAVA 通过 Socket 实现 TCP 编程 参考java Socket多线程聊天程序(适合初学者) 以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包 ...

  3. Java Socket 多线程聊天室

    本来这次作业我是想搞个图形界面的,然而现实情况是我把题意理解错了,于是乎失去了最初的兴致,还是把程序变成了功能正确但是“UI”不友好的console了,但是不管怎么样,前期的图形界面的开发还是很有收获 ...

  4. java socket 单服务器多客户端实时通信

    想用JAVA做一个服务器,请问怎么利用TCP和线程,实现多个客户端同时在线,能与服务器进行交互? 服务器监听端口 做个无限循环 接到一个连接就创建一个通道线程,并将通道线程存储到一个list集合中 1 ...

  5. java socket 多线程通讯 使用mina作为服务端

    客户端代码不变,参照 http://www.cnblogs.com/Westfalen/p/6251473.html 服务端代码如下: import java.io.IOException; impo ...

  6. java socket 多线程通讯

    1.目录结构 2.Server.java 代码 package de.bvb.server; import java.net.ServerSocket; import java.net.Socket; ...

  7. Java socket 多线程编程 示例

    参照网上代码: 1.工程: 2.代码: Client.java package com.my.socket.test; import java.io.BufferedReader; import ja ...

  8. java基础-多线程 等待唤醒机制

       /**  * @param args  * 等待唤醒机制  */ public static void main(String[] args) {  final Printer p = new ...

  9. Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系

    HTTP协议本身是无状态的,即使是同一台电脑同一个浏览器打开同一个页面两次,服务器不知道这两次请求是同一个客户端发送过来的,两次请求是完全独立的.例如,第一次请求时已经登录了,第二次再请求服务器会“忘 ...

随机推荐

  1. Asp.Net Core 学习教程1、初始.Net Core与VS Code 第一个web程序

    1..Net Core介绍 .NET Core是.NET Framework的新一代版本, 是微软开发的第一个具有跨平台(Windows.Macosx.Linux) 能力的应用程序开发框架,未来也将会 ...

  2. Flutter使用SingleTickerProviderStateMixin报错

    最近在学习开发Flutter应用项目,在创建tabbar和tabview后,进行网络请求后显示顶部tab标签,设置TabController,并使class类实现SingleTickerProvide ...

  3. 简单 hash 入门题目

    题目描述 NOIP 复赛之前,HSD 桑进行了一项研究,发现人某条染色体上的一段 DNA 序列中连续的 kkk 个碱基组成的碱基序列与做题的 AC 率有关!于是他想研究一下这种关系.现在给出一段 DN ...

  4. DateTime.Now

    // 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...

  5. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声

    在第一境中,我们主要了解了爬虫的一些基本原理,说原理也行,说基础知识也罢,结果就是已经知道一个小爬虫是如何诞生的了~那么现在,请默默回想一下,在第一境中,您都掌握了哪些内容?哪些还比较模糊?如果还有什 ...

  6. 类选择器练习:Google 案例

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

  7. scrapy持久化到Excel表格

    前提条件: 防止乱码产生 ITEM_PIPELINES = { 'xpc.pipelines.ExcelPipeline': 300, } 方法一 1.安装openpyxl conda install ...

  8. git 多人协同开发

    一.允许他人操作程序(两种方式) 1.添加合作者 2.创建组织 二.分支 每个开发者创建一个属于他们的dev分支 三.合并规则 1.一起合并(代码会出现冲突) 2.尽量缩短合并的周期

  9. [题解]CSP2019 Solution - Part B

    \(\text{orz}\) 一波现场 \(\text{A}\) 掉 \(\text{D1T3}\) 的神仙 D2T3 centroid Solution 考虑每个点 \(u\) 作为重心的贡献 假设 ...

  10. python self用法

    在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数. class Person: def __init__(self): print(&qu ...