java接收TCP协议端口发送来的数据后怎么保存到mysql数据库
这是自动接收端口数据的代码packagetcpdemo_1;importjava.io.IOException;importjava.net.InetSocketAddr...
这是自动接收端口数据的代码
package tcpdemo_1;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
public class NServer {
// 用于检测所有Channel状态的Selector
private Selector selector = null;
//指定服务器端口
static final int PORT = 1001;
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
public void init() throws IOException {
selector = Selector.open();
// 通过open方法来打开一个未绑定的ServerSocketChannel实例
ServerSocketChannel server = ServerSocketChannel.open();
InetSocketAddress isa = new InetSocketAddress("192.168.1.152", PORT);
server.bind(isa);
// 设置ServerSocket以非阻塞方式工作
server.configureBlocking(false);
// 将server注册到指定Selector对象
server.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select() > 0) {
for (SelectionKey sk : selector.selectedKeys()) {
// 从selector上的已选择Key集中删除正在处理的SelectionKey
selector.selectedKeys().remove(sk); // ①
// 如果sk对应的Channel包含客户端的连接请求
if (sk.isAcceptable()) // ②
{
// 调用accept方法接受连接,产生服务器端的SocketChannel
SocketChannel sc = server.accept();
// 设置采用非阻塞模式
sc.configureBlocking(false);
// 将该SocketChannel也注册到selector
sc.register(selector, SelectionKey.OP_READ);
// 将sk对应的Channel设置成准备接受其他请求
sk.interestOps(SelectionKey.OP_ACCEPT);
}
if (sk.isReadable())
{
// 获取该SelectionKey对应的Channel,该Channel中有可读的数据
SocketChannel sc = (SocketChannel) sk.channel();
// 定义准备执行读取数据的ByteBuffer
ByteBuffer buff = ByteBuffer.allocate(102400);
// 开始读取数据
while (sc.read(buff) > 0) {
buff.flip();
byte[] bytes = new byte[buff.remaining()];
buff.get(bytes, 0, bytes.length);
String ss = NServer.bytesToHexString(bytes);
System.out.print(ss);
buff.clear();
}
sk.interestOps(SelectionKey.OP_READ);
}
}
}
}
}
public class Ndemo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
NServer ns=new NServer();
ns.init();
}
}
自动接收端口数据怎么自动保存到数据库呢?小白求大神解答,谢过 展开
package tcpdemo_1;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
public class NServer {
// 用于检测所有Channel状态的Selector
private Selector selector = null;
//指定服务器端口
static final int PORT = 1001;
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
public void init() throws IOException {
selector = Selector.open();
// 通过open方法来打开一个未绑定的ServerSocketChannel实例
ServerSocketChannel server = ServerSocketChannel.open();
InetSocketAddress isa = new InetSocketAddress("192.168.1.152", PORT);
server.bind(isa);
// 设置ServerSocket以非阻塞方式工作
server.configureBlocking(false);
// 将server注册到指定Selector对象
server.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select() > 0) {
for (SelectionKey sk : selector.selectedKeys()) {
// 从selector上的已选择Key集中删除正在处理的SelectionKey
selector.selectedKeys().remove(sk); // ①
// 如果sk对应的Channel包含客户端的连接请求
if (sk.isAcceptable()) // ②
{
// 调用accept方法接受连接,产生服务器端的SocketChannel
SocketChannel sc = server.accept();
// 设置采用非阻塞模式
sc.configureBlocking(false);
// 将该SocketChannel也注册到selector
sc.register(selector, SelectionKey.OP_READ);
// 将sk对应的Channel设置成准备接受其他请求
sk.interestOps(SelectionKey.OP_ACCEPT);
}
if (sk.isReadable())
{
// 获取该SelectionKey对应的Channel,该Channel中有可读的数据
SocketChannel sc = (SocketChannel) sk.channel();
// 定义准备执行读取数据的ByteBuffer
ByteBuffer buff = ByteBuffer.allocate(102400);
// 开始读取数据
while (sc.read(buff) > 0) {
buff.flip();
byte[] bytes = new byte[buff.remaining()];
buff.get(bytes, 0, bytes.length);
String ss = NServer.bytesToHexString(bytes);
System.out.print(ss);
buff.clear();
}
sk.interestOps(SelectionKey.OP_READ);
}
}
}
}
}
public class Ndemo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
NServer ns=new NServer();
ns.init();
}
}
自动接收端口数据怎么自动保存到数据库呢?小白求大神解答,谢过 展开
3个回答
2017-11-10
展开全部
//前端要调用后端的接口可以是用jsonp前端写法:$.ajax({url:"/xxx.java",data:{type:"xxx",a:"aaa"},async:false,dataType:"jsonp",jsonp:"callback",jsonpCallback:"returnLiveViewData",success:function(msg){},error:funct
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个真不知道 你还是问问别人
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询