JAVA SOCKET多线程等待接受客户端信息实现
服务端程序:
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多线程等待接受客户端信息实现的更多相关文章
- java socket 多线程网络传输多个文件
http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人 ...
- java Socket多线程聊天程序
参考JAVA 通过 Socket 实现 TCP 编程 参考java Socket多线程聊天程序(适合初学者) 以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包 ...
- Java Socket 多线程聊天室
本来这次作业我是想搞个图形界面的,然而现实情况是我把题意理解错了,于是乎失去了最初的兴致,还是把程序变成了功能正确但是“UI”不友好的console了,但是不管怎么样,前期的图形界面的开发还是很有收获 ...
- java socket 单服务器多客户端实时通信
想用JAVA做一个服务器,请问怎么利用TCP和线程,实现多个客户端同时在线,能与服务器进行交互? 服务器监听端口 做个无限循环 接到一个连接就创建一个通道线程,并将通道线程存储到一个list集合中 1 ...
- java socket 多线程通讯 使用mina作为服务端
客户端代码不变,参照 http://www.cnblogs.com/Westfalen/p/6251473.html 服务端代码如下: import java.io.IOException; impo ...
- java socket 多线程通讯
1.目录结构 2.Server.java 代码 package de.bvb.server; import java.net.ServerSocket; import java.net.Socket; ...
- Java socket 多线程编程 示例
参照网上代码: 1.工程: 2.代码: Client.java package com.my.socket.test; import java.io.BufferedReader; import ja ...
- java基础-多线程 等待唤醒机制
/** * @param args * 等待唤醒机制 */ public static void main(String[] args) { final Printer p = new ...
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
HTTP协议本身是无状态的,即使是同一台电脑同一个浏览器打开同一个页面两次,服务器不知道这两次请求是同一个客户端发送过来的,两次请求是完全独立的.例如,第一次请求时已经登录了,第二次再请求服务器会“忘 ...
随机推荐
- Asp.Net Core 学习教程1、初始.Net Core与VS Code 第一个web程序
1..Net Core介绍 .NET Core是.NET Framework的新一代版本, 是微软开发的第一个具有跨平台(Windows.Macosx.Linux) 能力的应用程序开发框架,未来也将会 ...
- Flutter使用SingleTickerProviderStateMixin报错
最近在学习开发Flutter应用项目,在创建tabbar和tabview后,进行网络请求后显示顶部tab标签,设置TabController,并使class类实现SingleTickerProvide ...
- 简单 hash 入门题目
题目描述 NOIP 复赛之前,HSD 桑进行了一项研究,发现人某条染色体上的一段 DNA 序列中连续的 kkk 个碱基组成的碱基序列与做题的 AC 率有关!于是他想研究一下这种关系.现在给出一段 DN ...
- DateTime.Now
// 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...
- 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声
在第一境中,我们主要了解了爬虫的一些基本原理,说原理也行,说基础知识也罢,结果就是已经知道一个小爬虫是如何诞生的了~那么现在,请默默回想一下,在第一境中,您都掌握了哪些内容?哪些还比较模糊?如果还有什 ...
- 类选择器练习:Google 案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- scrapy持久化到Excel表格
前提条件: 防止乱码产生 ITEM_PIPELINES = { 'xpc.pipelines.ExcelPipeline': 300, } 方法一 1.安装openpyxl conda install ...
- git 多人协同开发
一.允许他人操作程序(两种方式) 1.添加合作者 2.创建组织 二.分支 每个开发者创建一个属于他们的dev分支 三.合并规则 1.一起合并(代码会出现冲突) 2.尽量缩短合并的周期
- [题解]CSP2019 Solution - Part B
\(\text{orz}\) 一波现场 \(\text{A}\) 掉 \(\text{D1T3}\) 的神仙 D2T3 centroid Solution 考虑每个点 \(u\) 作为重心的贡献 假设 ...
- python self用法
在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数. class Person: def __init__(self): print(&qu ...