java项目---用java实现简单TCP服务器监听(3星)
---------------------------------------------服务端----------------------------------------------- 1 package C;
import java.io.*;
import java.net.*; public class Server extends ServerSocket
{
public Server(int serverPort) throws IOException
{
super(serverPort);
try
{
while (true)
{
Socket socket = accept();
new ServerThread(socket);
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
close();
}
}
class ServerThread extends Thread /*建立服务端线程*/
{
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ServerThread(Socket s) throws IOException
{
this.socket = s;
in = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "GB2312")); /*国标码*/
out = new PrintWriter(socket.getOutputStream(),true);
start(); /*开始线程*/
} public void run()
{
try {
while (true)
{
String line = in.readLine();
if ("finish".equals(line))
{
System.out.println("服务器已停止监听");
break;
}
System.out.println("接收到的数据:" + line);
String msg = "'" + line + "'已传输到服务器端.";
out.println(msg);
out.flush();
}
out.close();
in.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException
{
System.out.println("服务器开始运行......");
new Server(2333); /*绑定端口号*/
} }
---------------------------------------------客户端----------------------------------------------- 1 package C;
import java.io.*;
import java.net.*; public class Client
{
private Socket socket; /*定义socket连接*/
private BufferedReader reader; /*从字符输入流读取文本*/
private PrintWriter writer; /*打印到文本输出流*/ public Client(int serverPort) { /*定义客户端端口号*/
try { /*抛异常*/
socket = new Socket("123.206.78.55", serverPort);
reader = new BufferedReader(
new InputStreamReader(socket.getInputStream())); /*标准输入输出流*/
writer = new PrintWriter(socket.getOutputStream()); while (true)
{ BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
String message = in.readLine();
writer.println(message);
writer.flush(); /*不关闭流,清空输入缓存区*/ if ("finish".equals(message))
{
System.out.println("服务器已停止监听");
break;
}
String received = reader.readLine();
System.out.println(received);
} writer.close();
reader.close(); /*关闭流*/
socket.close(); }
catch (UnknownHostException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace(); /*在命令行打印异常信息在程序中出错的位置及原因*/
}
} public static void main(String[] args)
{
new Client(2333); /*绑定端口号*/
}
}
服务端是通过客户端的流式输入来实现监听和停止监听的。
java项目---用java实现简单TCP服务器监听(3星)的更多相关文章
- Scoket 服务器监听多个客户端发来的图片
这是服务器 直接上代码 都有详细注释 注意线程需要自己手动关闭 不然程序会卡死 /* ######### ############ ############# ## ########### ### # ...
- 用nodejs搭建一个简单的服务监听程序
作为一个从业三年左右的,并且从事过半年左右PHP开发工作的前端,对于后台,尤其是对以js语言进行开发的nodejs,那是比较有兴趣的,虽然本身并没有接触过相关的工作,只是自己私下做的一下小实验,但是还 ...
- Java 项目中一种简单的动态修改配置即时生效的方式 WatchService
这种方式仅适合于比较小的项目,例如只有一两台服务器,而且配置文件是可以直接修改的.例如 Spring mvc 以 war 包的形式部署,可以直接修改resources 中的配置文件.如果是 Sprin ...
- Java 18 新特性:简单Web服务器 jwebserver
在今年3月下旬的时候,Java版本已经更新到了18.接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学 ...
- 用Java编写你自己的简单HTTP服务器
http://blog.csdn.net/yanghua_kobe/article/details/7296156 原文不错. 服务器支持的并发连接数,就是要开多少个线程,每个线程里一个socket监 ...
- eclipse中如何将java项目转为java Web项目
有时候我们在eclipse中导入web项目时,系统当做一个java项目导入进来了.这时候在启动tomcat的服务器时无法找到该项目. 那么可以通过如下操作来将java项目转换为web项目. 1. 选择 ...
- 353 stars Java项目!Java小白必看!austin介绍 【第一话】
有好几个群友问我为什么最近更新变慢了.工作忙是一方面,另一方面是我更新文章的动力确实下降了.近大半年一直在更新的<对线面试官>系列,到现在已经40篇了. 说实话,当时我更新该系列有很大一部 ...
- JAVA 图形开发之计算器设计(事件监听机制)
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 前段时间刚帮同学用MFC写了个计算器,现在学到JAVA的图形开发,就试着水了一个计算器出来.(可以说 ...
- udp服务器监听(多线程)
项目一:udp1111 监听的有三个文件分别为: guiHello.java 有关界面和事件响应功能 UdpFunc.java是udp类的封装:发送和接收 udpServer.java是入口函数,无实 ...
随机推荐
- 如何推进企业流程体系建设?_K2 BPM
推进全集团统一的流程体系为什么比想象的难? 很多企业在推进全集团的流程管理过程中,经常会有一种“望山跑死马”的感觉.“各成员公司都建立起与集团公司统一的流程管理体系”,看似很简单一件事情,但没有经过良 ...
- Problem after converting keras model into Tensorflow pb - 将keras模型转换为Tensorflow pb后的问题
I'm using keras 2.1.* with tensorflow 1.13.* backend. I save my model during training with .h5 forma ...
- cdh日常维护常见问题及解决方案
为数据节点添加新硬盘 - 挂载硬盘到指定文件夹.如`/dfs_diskb`: - 打开cloudera manager -> hdfs -> 配置 -> DataNode -> ...
- 最大流 USTC1280
挺有意思的一题,最小路径之后最大流 /************************************************************** 作者:陈新 邮箱:cx2pirate ...
- numpy数据集练习
#1. 安装scipy,numpy,sklearn包 import numpy as np #2. 从sklearn包自带的数据集中读出鸢尾花数据集data from sklearn.datasets ...
- Selenium 工作原理
Selenium是ThoughtWorks公司研发的一个强大的基于浏览器的开源自动化测试工具,它通常用来编写web应用的自动化测试.早期也即Selenium1.x时期主要使用Selenium RC(S ...
- JAVA第3,4课(内容合并)
JAVA 第三课 代码执行顺序
- element-项目用到偏门方法~
开发项目的时候,组件库的使用有时会为我们节省开发时间,提高开发效率,但组件库样式有时与我们的设计图出入很大,还有的方法也很偏门,主要官方文档有时候对于一些方法和属性介绍的也比较少,以下是我在工作中总结 ...
- mui组件 输入表单 快捷键mf
<form class="mui-input-group"> <div class="mui-input-row"> <label ...
- Rewrite json
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...