java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)
package cn.wang;
import java.io.*;
import java.net.*;
public class Server {
static int num = 1;//客户端计数
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket server = null;
Socket client = null;
while(true) {
try {
server = new ServerSocket(4444);
//绑定端口,监听客户端
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Error:"+e);
}
try {
client = server.accept();
//与客户端建立连接
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("接受请求失败!");
System.exit(-1);
}
System.out.println("Client["+Server.num+"]登录...");
ServerThread st = new ServerThread(client);
Thread t= new Thread(st);
//监听到客户端,为他创建线程,主程序返回继续监听
t.start();
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("关闭失败!");
}
num++;
}
}
public static class ServerThread implements Runnable{
private Socket client;
public ServerThread(Socket client) {
this.client = client;
}
public void run() {
try {
BufferedReader is = new BufferedReader(new InputStreamReader(client.getInputStream()));
//将从客户端接受的信息存放到缓存is中
PrintWriter os = new PrintWriter(client.getOutputStream());
//从socket获取客户端的输出流,通过os向客户端发送消息
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
//建立缓存,为后面输入数据做准备
System.out.println("Client:"+is.readLine());
//打印客户端发来的信息
String inputString = sin.readLine();
//从键盘输入信息,存放在inputString中
while(inputString!=null&&inputString.trim().equals("quit")){
os.println(inputString);
//os.println向客户端发送消息,内容是inputString
os.flush();
//刷新输出流,使client马上得到该信息
System.out.println("Server发送的信息为:"+inputString);
//打印服务器向客户端发送的信息
System.out.println("Client发来的信息为:"+is.readLine());
//打印客户端发来的信息
inputString = sin.readLine();
//继续读入数据
}
os.close();//关闭Socket输出流
is.close();//关闭Socket输入流
client.close();//关闭Socket
System.out.println("通信结束!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)相关推荐
- day26-2 基于TCP协议的套接字编程
目录 基于TCP协议的套接字编程 套接字 套接字工作流程 基于TCP协议的套接字编程(简单) 服务端 客户端 基于TCP协议的套接字编程(循环) 服务端 客户端1 客户端2 基于TCP协议的套接字编程 ...
- python中基于tcp协议的通信(数据传输)
tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...
- 电子词典(基于TCP协议多进程通信和数据库)
项目:电子词典 项目要求: 登录注册功能,不能重复登录,重复注册.用户信息也存储在数据库中. 单词查询功能 历史记录功能,存储单词,意思,以及查询时间,存储在数据库 基于TCP,支持多客户端连接 采用 ...
- 基于TCP协议实现通信
实现一个简单的从客户端发送一个消息到服务端的功能 public static void main(String[] args) throws IOException { ServerSocket se ...
- java plc通信协议_Java实现计算机与OMRONPLC串口通信.pdf
Java实现计算机与OMRONPLC串口通信 · 84 · 工业仪表与 自动化装置 2010年第 1期 Java实现计算机与oMRONPLC串口通信 吴兴军.胡汉春 (北京西动车所:西南交通大学机械工 ...
- java socket 通信协议_java 基于TCP协议的Socket编程和通信
java 基于 TCP 协议的 Socket 编程和通信 在网络通讯中,第一次主动发起通讯的程序被称作客户 端 (Client) 程序, 简称客户端, 而在第一次通讯中等待连接的 程序被称作服务器端 ...
- java socket发送定长报文_一个基于TCP协议的Socket通信实例
原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...
- Java学习系列(十六)Java面向对象之基于TCP协议的网络通信
TCP/IP的网络分层模型:应用层(HTTP/FTP/SMTP/POPS...),传输层(TCP协议),网络层(IP协议,负责为网络上节点分配唯一标识),物理层+数据链路层). IP地址用于标识网络中 ...
- socket 网络通信(基于tcp协议)以及粘包解决方案
socket 网络通信(基于tcp协议)以及粘包解决方案 参考文章: (1)socket 网络通信(基于tcp协议)以及粘包解决方案 (2)https://www.cnblogs.com/amiee- ...
最新文章
- Android之如何以最简单方式开启闪光灯
- hadoop运行中报错笔记
- r指引到文件夹_R语言中进行文件夹及文件夹内文件操作范例
- GetSafeHwnd()函数
- 批量插入数据到mysql_批量插入数据到 MySQL的几种方式
- mysql排序两位数_MySQL_Mysql row number()排序函数的用法和注意,虽然使用不多,但是也有情况 - phpStudy...
- oracle会闪,oracle闪来
- ajax header的bearer token验证
- Java基础知识盘点(二)- 集合篇
- 计算机二级b5纸是多大尺寸,两张b5纸是多大
- 蓝桥杯嵌入式比赛经验分享
- 为什么函数lamda显示权限不足_C++常用内置函数
- 【python博客爬虫】
- Js实现炫酷仿抖罗盘时钟------Sestid
- 智能小车寻迹c语言程序,智能小车循迹记时测速程序
- 创建mysql视图索引_mysql 创建索引和视图
- Dynamics 365 新建组织时一直提示识别不到Reporting Extensions
- java高级应用_Java高级应用简笔
- GPS定位系统(一)——介绍
- ElasticSearchTransportClient集成SearchGuard插件实现索引级别的权限管控