package top.duanhong.emims.controller.rest.remote;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* socket服务
* @author Administrator
*/
public class Gprs{
//private static List<Socket> clients = new LinkedList<Socket>();
/**
*
*/
private static Map<String, Socket> clients=new LinkedHashMap<String, Socket>();
static PrintWriter pw = null;
static FileWriter fw = null;
public static void main(String[] args) {
int port = 10001;
try {
ServerSocket server = new ServerSocket(port);
while (true) {
// 获得客户端连接
// 阻塞式方法
System.out.println("准备阻塞...");
final Socket client = server.accept();
System.out.println("阻塞完成...");
new Thread(new Runnable() {
@Override
public void run() {
try {
InputStream is = client.getInputStream();
//获取输出流 给客服的写数据
OutputStream os = client.getOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
System.out.println("准备read...");
while ((len = is.read(buffer)) != -1) {
String text=new String(buffer,0,len);
System.out.println(text);
System.out.println("read完成...");
if(text.startsWith("#"))
{
clients.put(text, client);
os.write("认证成功".getBytes());
}else{
os.write("收到了你的请求".getBytes());
// String[] split = text.split(":");
// String key="#"+split[0];
// String content=split[1];
// 关联文件
File file = new File("c:\\123.txt");
if(!file.exists()){
// 判断文件不存在就new新文件,写数据
try {
file.createNewFile();
// java IO流和文件关联
pw = new PrintWriter(file);
pw.print(text + "\t");
pw.println();
pw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
// 判断文件存在,就以FileWriter文件追加的方式写文件
try {
fw = new FileWriter("c:\\123.txt",true);
fw.write(text + "\r\n");
fw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Socket s = clients.get(key);
// if(s!=null){
// OutputStream output = s.getOutputStream();
// output.write(content.getBytes());
// }
}
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
阿齐Archie
- 粉丝: 3w+
- 资源: 2472
最新资源
- 屏幕截图 2024-12-21 170328.png
- Python基于Opencv+keras的实时手势识别系统源码+文档
- 屏幕截图 2024-12-21 171010.png
- 屏幕截图 2024-12-21 170616.png
- 屏幕截图 2024-12-21 171921.png
- Python&Opencv手势识别系统(完整源码&自定义UI操作界面)
- 空中俯视物体检测22-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- Python毕业设计-基于Opencv手势识别系统源码+文档
- LabVIEW 通讯与罗克韦尔 AB Allen Bradley PLC通讯 EhernetIP 网口TCP标签通讯 SL500实测通过 常用功能一网打尽 1.命令帧读写 2.支持 I16 I3
- 结合多个机器学习模型进行分类,并使用交叉验证来评估模型性能,最后我们还会使用模型融合(Ensemble Learning)来尝试提高预测准确率
- python+windows+自动点击脚本
- 前后双电机扭矩分配,四驱扭矩分配,前后各一个电机,基于效率的扭矩分配 根据电机效率计算分配系数 系统效率最高 电动车四驱扭矩分配
- 基于YOLOV5的手势识别系统源码(毕设)+文档+数据集
- 基于多次多项式的机器学习脚本案例
- 外转子无刷直流电机温度场,瞬态热仿真
- 空中俯视物体检测23-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈