java socket 循环读取_java socket tcp(服务器循环检测)
刚才看了下以前写了的代码,tcp通信,发现太简单了,直接又摘抄了一个,运行
博客:http://blog.csdn.net/zhy_cheng/article/details/7819659
优点是服务器循环检测,客户端间歇性发送,缺点是代码杂糅在一块,不太容易看懂,大概明白它是通过方法重载实现的:
服务器代码:
建立ServiceSocket.java,ServiceSocket代码:
package com.swust.udp;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServiceSocket extends Thread{
public Socket sock;
public ServiceSocket(Socket sock)
{
this.sock=sock;
}
public void run()
{
try{
OutputStream os=sock.getOutputStream();
InputStream is=sock.getInputStream();
os.write("Hello这里是来自服务器的消息".getBytes());
byte []buf=new byte[100];
int len=is.read(buf);
System.out.println(new String(buf,0,len));
os.close();
is.close();
sock.close();
}
catch(Exception e)
{
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
ServerSocket ss=new ServerSocket(6000); //循环扫描,没有关闭:ss.close();
while(true)
{
Socket s=ss.accept();
new ServiceSocket(s).start();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端代码:
建立ClientSocket.java,ClientSocket代码:
package com.swust.udp;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class ClientSocket {
public static void main(String []args)
{
try {
Socket s=new Socket(InetAddress.getByName(null),6000);//"localhost" "127.0.0.1s"
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();
byte []buf=new byte[100];
int len=is.read(buf);
System.out.println(new String(buf,0,len));
os.write("Hello,我是客户端的消息".getBytes());
Thread.sleep(100);
os.close();
is.close();
s.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java socket 循环读取_java socket tcp(服务器循环检测)相关推荐
- java服务端代码_Java Socket编程服务器响应客户端实例代码
通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...
- Java 使用Socket 实现基于DTU的TCP服务器 + 数据解析 + 心跳检测
在物联网时代,DTU的运用非常广泛 :环境监测中通过DTU将传感器的数据远程传输至云服务器也是比较常见的用法.下面我来分享一下我的项目经验 1.物理连接拓扑 2.服务器后台流程 3.代码 设备TCP服 ...
- java socket远空_JAVA Socket超时浅析
套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字",可以想象它们之间有一条 ...
- java socket通信 客户端_JavaのSocket编程之简单客户端与服务器端通信
Socket编程之简单客户端与服务器端通信 socket 通常用来实现客户端和服务端的连接,socket 是Tcp/Ip协议的一个十分流行的编程界面,一个socket 由一个Ip地址和一个端口号唯一确 ...
- java socket编程心跳_Java Socket编程心跳包创建实例解析
1.什么是心跳包? 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包. 用来判断对方(设备,进程或其它网元)是否正常运行,采用 ...
- java socket 线程池_java socket编程的一个例子(线程池)
服务器程序EchoServer.java: import java.io.*; import java.net.*; import java.util.concurrent.*; public cla ...
- java socket readline 阻塞_java Socket readLine() 阻塞
1,当使用调用 在服务器端调用readLine()的时候,客户端就如果调用的是print()方法就会卡住,而且不会报错,改成println() 就会畅通! 2,如果 socket端 while()循环 ...
- java socket负载均衡_Java Socket分发服务负载均衡
1 1. 设备请求分发服务器,分发服务器返回有效的socket服务器ip与port,然后断开连接.2 a) 设备与服务器建立连接.3 b) 服务器接收到连接请求后,立即将分配好的socket服务器ip ...
- java socket 一边关闭_java socket - 半关闭
通常,使用关闭输出流来表示输出已经结束.但在进行网络通信时则不能这样做.因为我们关闭输出流时,该输出流对应的Socket也将随之关闭,这样程序将无法再从该socket中读取数据. 为了应付这种情况,s ...
最新文章
- 人类如何接近“宇宙无限”?微积分的力量无处不在
- C#为什么支持协变的参数只能用于方法的返回值?支持逆变的参数只能用于方法参数?...
- QT的QWizard类的使用
- 远程桌面与远程协助的区别mstsc /console
- [REGEX] 匹配任意字符(包括换行符)
- python 画图 线标注_最简洁的Python时间序列可视化实现
- 年度回顾 | 2019 年的 Apache Flink
- java 顶点着色_Shader笔记_002简单顶点/片元着色器扩展
- Windows远程桌面连接Ubuntu 16.04
- 极客学院HTML5全套教程
- 【微服务集成阿里SMS短信服务发送短信】
- Python 爬虫、抓包
- JS算法-整数转罗马数字
- C++之memcpy的用法
- android降噪算法,Android主动降噪功能
- RFID条形码标签软件丨CODESOFT功能简介
- win10家庭版远程桌面连接(RDP)
- cmake链接opencv库
- 遇见未知的自己---给自己一个机会翻身
- 基于PP-ShiTu的零售商品结算系统设计与在Jetson Nano上部署推理使用
热门文章
- 圆周率一千万亿位_圆周率一千位
- 1-106兔子繁衍问题
- 抖音荣誉等级与粉丝等级的消费对照表
- IU酒店释放轻中端投资活力,开启曲靖酒店新篇章
- Android , 打开系统播放器
- 鸿蒙开发实战系列之三:网络请求(原生+ Retrofit)
- linux修改禅道端口,CentOS7上安装了gitlab和禅道,改了禅道端口访问不了
- Element ui 表单验证触发方式:trigger的两种选项
- 报错:UnicodeDecodeError:: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid contin
- 指数函数误差平方和matlab,数值分析与实验数学081 张燃 3080801119).doc