autoit java_AutoIt3客户端和Java服务器端TCP通信
AotoIT3客户端代码:
#include
;; 启动TCP
TCPStartup();
;; 建立TCP连接
$address = "127.0.0.1" ;;通讯地址
$port=8888 ;;通讯端口
$ConnectedSocket = TCPConnect($address, $port)
If @error Then
MsgBox(4112, "error", "TCP连接错误: " & @error)
EndIf
;; 发送TCP字符串
$data = "hello,i am client.";
TCPSend($ConnectedSocket, $data);
If @error Then
MsgBox(4112, "error", "发送数据连接错误: " & @error)
Else
MsgBox(64, "提示", "发送数据完成! ")
EndIf
Java服务器端代码:
package com.what21;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Set;
public class NIOTcpServer {
private Selector selector;
public NIOTcpServer(int port) throws IOException {
// 打开服务器套接字通道
ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
// 服务器配置为非阻塞
serverSocketChannel.configureBlocking(false);
// 检索与此通道关联的服务器套接字
ServerSocket serverSocket = serverSocketChannel.socket();
// 进行服务的绑定
serverSocket.bind(new InetSocketAddress(port));
// 通过open()方法找到Selector
selector = Selector.open();
// 注册到selector,等待连接
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
System.out.println("Server Start 8888.");
}
// 监听
private void listen() throws IOException {
while (true) {
// 选择一组键,并且相应的通道已经打开
selector.select();
// 返回此选择器的已选择键集。
Set selectionKeys = selector.selectedKeys();
Iterator iterator = selectionKeys.iterator();
while (iterator.hasNext()) {
SelectionKey selectionKey = iterator.next();
iterator.remove();
handleKey(selectionKey);
}
}
}
/**
* @param selectionKey
* @throws IOException
*/
private void handleKey(SelectionKey selectionKey) throws IOException {
// 接受请求
ServerSocketChannel server = null;
SocketChannel client = null;
int count = 0;
if (selectionKey.isAcceptable()) {
server = (ServerSocketChannel) selectionKey.channel();
client = server.accept();
client.configureBlocking(false);
client.register(selector, SelectionKey.OP_READ);
} else {
try{
client = (SocketChannel) selectionKey.channel();
ByteBuffer receivebuffer = ByteBuffer.allocate(4096);
count = client.read(receivebuffer);
if (count > 0) {
String receiveText = new String(receivebuffer.array(), 0, count);
System.out.println("接收数据: " + receiveText);
client.register(selector, SelectionKey.OP_CONNECT);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
int port = 8888;
NIOTcpServer server = new NIOTcpServer(port);
server.listen();
}
}
autoit java_AutoIt3客户端和Java服务器端TCP通信相关推荐
- JAVA客户端数据传输_java模拟TCP通信实现客户端上传文件到服务器端
java模拟TCP通信实现客户端上传文件到服务器端,供大家参考,具体内容如下 客户端 package com.zr; import java.io.FileInputStream; import ja ...
- 【零基础学Java】—TCP通信(五十四)
[零基础学Java]-TCP通信(五十四) TCP通信:面向连接的通信,客户端和服务器端必须经过三次握手,建立逻辑连接,才能通信(安全). 通信的步骤: 服务器端先启动 服务器端不会主动的请求客户端, ...
- 【JAVA】TCP通信——发弹幕案例
Java实现TCP通信--发弹幕案例 TCP通信可以实现双方相互接收发送消息,初学TCP通信,从简入难,先实现一方可以接收多方消息(一方作为服务端,多方作为客户端),即类似于观看视频的用户发送多条弹幕 ...
- Android客户端和Java服务器端集成支付宝
移动端集成支付,似乎是每个App都可能面临的一件事.所有项目都在谈盈利模式,而从C端获取现金流是盈利中最重要的一个途径之一. 当前大家主要采用微信支付和阿里支付集成到自己的移动应用,虽然官方提供一些文 ...
- java tcp client断开重连_ESP8266_12 ESP8266客户端模式下的TCP通信
上一节说了UDP,这一节就聊聊TCP,毕竟它俩经常同时出现.优缺点上一节也提了一下:安全性好,速度慢. 除了这两点,还有就是: TCP通信之前是需要建立连接的,如同打电话之前先拨号一样,而UDP无连接 ...
- php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...
- 黑马JAVA P182 TCP通信快速入门
package com.itheima.d5_socket1;import java.io.IOException; import java.io.OutputStream; import java. ...
- java的tcp通信项目_java实现TCP通信
1.概述 通过ServerSocket与Socket实现的TCP的通信,这个例子配合了swing使用,其实作者之前发过一篇ServerSocker与Socket的通信,在这里,这边文章就是在这个例子上 ...
- JAVA通过tcp通信劳易测BCL 308i扫码枪获取数据
最近项目里面要集成一个扫码枪,我来负责对接.不得不说,这个扫码枪属实是我见过最烦的.首先便是硬件,送过来需要自己组装,然后网线需要自己做一根来接入他们的引脚,也没有充电线需要24V电压,得需要电压转换 ...
- Java网络编程 - TCP通信
文章目录 TCP通信 快速入门(一发一收) 编写客户端代码 编写服务器代码 多发多收 多发多收(同时接受多个客户端) 线程池优化 TCP通信 快速入门(一发一收) TCP协议回顾: TCP是一种面向连 ...
最新文章
- python自动开发之(算法)第二十七天
- codeforces 700B Connecting Universities
- Android设备音频部分一些概念
- html5 数据验证,【译】表单数据校验
- uva437The Tower of Babylon
- 这个地球仪太惊艳了,陪孩子畅聊天文地理。
- 一统江湖的大前端(4)shell.js——穿上马甲我照样认识你
- ubuntu创建切换超级用户
- (匹配)Fire Net --hdu --1045
- 【React】设计高质量的React组件
- C语言学生成绩排名系统
- python正则取反,一文搞定Python正则表达式
- 企业网站专业性诊断评价
- 什么是前端开发工程师
- 创意简约中国风新年快乐牛年大吉通用PPT模板
- android win10 投屏,安卓手机投影win10不成功,版本升级前可以
- 【LaTeX 教程】01. LaTeX 简介与安装
- 评委打分表模板_系高中英语作文模板——邀请信
- IDEA 断点调试,为啥断点没有起作用
- 天才制造者:独行侠、科技巨头和AI|深度学习崛起十年
热门文章
- Loadrunner事务与子事务函数简介
- mac os操作系统如何降级
- 大数据分析及工具应用总结
- 德赛西威Mib280D升级0393版本系统
- html 中 超链接的写法,网页超链接样式的CSS写法
- MMORPG开发入门[转]
- 理解LSTM网络(Understanding LSTM Networks)原文与翻译
- Deep learning-based method coupled with small sample learning for solving partial differential equat
- python读取odb_python - 从.odb文件中提取von mises应力值 - 堆栈内存溢出
- 高端门诊提示预约体检短信怎么发?