❶ java中怎么用TCP发送数据
println和 print的区别 还是参照javadoc比较准确,就是最后是否跟上一个换行。这种函数含义的解释,查手册是最准确的。
s.getOutputStream() 返回的结果 直接就是 OutputStream 这个类本身就是用于发送 byte[]的。
字符串转化成 byte[] 直接调用getBytes。
LZ应该详细阅读java手册。对于已经接触到的类 比如String,这种基本的,要看看它所有的函数实现。这就和学英语背单词一样,必须要有量的上去才行。
❷ JAVA解析发送tcp ip报文
JAVA 写一个SOCKET 服务器,接收、处理单片机递交上来的数据
通过文字输入流,直接可以当字符处理的。也很方便输出返馈。
❸ 求大佬指点 JAVA中TCP/IP服务端收到的数据怎么存到数据库中
无论是哪种语言,TCP的数据都是两种,一种是未解析过的原始报文(十六进制),这种可以存数据库,也可以是日志形式存在日志文件中,当做备份,调试查找问题的时候也可以通过这些原始报文来检查问题所在。另一种就是这些原始报文经过解析后的结果,比如ID、时间、其它数据这些,解析出来后直接插入你预先创建的数据库就可以了,这个就是历史库,当然一般来说,如果你的数据是以不同的设备ID区分的,通常还有一个最新状态库,它跟历史库结构一样,但同一个设备ID只有最新的一条记录。
❹ java tcp怎样创建报文
文件或文件流,解析就OK了
❺ 在Java中实现TCP协议编程中怎么传
在Java中实现TCP协议编程
ServerSocket:编写TCP网络服务程序,首先要用到java.net.ServerSocket类用以创建服务器Socket
构造方法:
ServerSocket(intport):创建绑定到特定端口的服务器套接字
ServerSocket(intport,intbacklog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套接字并将其绑定到指定的本地端口号。
ServerSocket(intport,intbacklog,InetAddressbindAddr):使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。
Socket:客户端要与服务器建立连接,必须先创建一个Socket对象
常用构造方法
Socket(Stringhost,intport):创建一个流套接字并将其连接到指定主机上的指定端口号。
Socket(InetAddressaddress,intport):创建一个流套接字并将其连接到指定IP地址的指定端口号。
服务器端程序调用ServerSocket类中的accept()方法等待客户端的连接请求,一旦accept()接收了客户端连接请求,该方法返回一个与该客户端建立了专线连接的Socket对象,不用程序去创建这个Socket对象。建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象。
TCP服务器与TCP客户端间的数据的接受图示:
用TCP实现服务器与客户端的“聊天”:
实例代码:
客户端:
packagecom.hbsi.net;
importjava.net.Socket;
importjava.io.*;
publicclassTcpClient{
publicstaticvoidmain(String[]args)throwsException{
//1.建立tcp客户端socket,要确定要连接的服务器ip,port
Sockets=newSocket("192.168.49.87",9009);
//获取键盘录入
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
//2.通过建立的socket,获取输出流对象
//数据输出给服务器端
OutputStreamout=s.getOutputStream();
BufferedWriterbwout=newBufferedWriter(newOutputStreamWriter(out));
//获取服务器端返回的数据
//读取服务器端发过来的信息InputStreamReader()
BufferedReaderbrin=newBufferedReader(newInputStreamReader(
s.getInputStream()));
Stringline=null;
while((line=br.readLine())!=null){
if(line.equals("over"))
break;
bwout.write(line);
bwout.newLine();
bwout.flush();
Stringstr=brin.readLine();
System.out.println("server:"+str);
}
br.close();
s.close();
}
}
服务器端:
packagecom.hbsi.net;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.net.ServerSocket;
importjava.net.Socket;
publicclassTcpServer{
publicstaticvoidmain(String[]args)throwsException{
//1.建立服务器socket
ServerSocketss=newServerSocket(9009);
//2.调用accept()
Sockets=ss.accept();
System.out.println(s.getInetAddress().getHostAddress()
+"...connection");
//读取客户的信息的输入流
InputStreamin=s.getInputStream();
BufferedReaderbrin=newBufferedReader(newInputStreamReader(in));
//向客户端发送信息输出流,服务端向客户端返回信息OutputStreamWriter()
BufferedWriterbrout=newBufferedWriter(newOutputStreamWriter(
s.getOutputStream())); Stringline=null;
while((line=brin.readLine())!=null){
System.out.println("client:"+line);
brout.write(line.toUpperCase());//服务器端收到信息后,将信息转为大写返回给客户端toUpperCase()
brout.newLine();
brout.flush();
}
s.close();
ss.close();
}
}
❻ java nio如何设置tcp报文紧急推送
在java中可以基于java.nio.channels中的Channel和Selector的相关类来实现TCP/IP+NIO方式的系统间通信。
用于系统间通信依靠SocketChannel和ServerSocketChannel,SocketChannel用于建立连接,监听事件及操作读写,ServerSocketChannel用于监听端口及监听连接事件,可通过Selector来获取是否有要处理的事件。
❼ 怎么样用java发送Tcp报文
你可以用socket编程,java socket是封装了TCP协议的,不需要你去设置里面的一些参数了。
你还可以用java jpcap编写,这个可以发送接收arp,tcp,udp,icmp等各种报文
❽ Java实现基于TCP协议的网络连接、报文收发。
可以参考一下我的网络空间的内容。http://hi..com/yinjicheng1987/blog上面有我对一个简单的聊天程序的详细的设计过程和代码实现。这是一个循序渐进的过程,如果能坚持看完所有的五篇博客,估计你会对java socket编程有个初步的了解,同样,如果需要,我可以给你一个网络版的五子棋项目。
❾ java解析报文
ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
if (bb.remaining() < MIN_HEADER_LENGTH) {
return this;
}
this.opCode = bb.get();
this.transactionId = bb.getInt();
按照这种节奏搞吧,这个很简单的啊,拿到BYTEBUFFER以后,一点一点的处理byte。
❿ java 实现抓取本地网卡TCP报文,然后解析,将其写入数据库 谁有样例代码,或者实现方式,
思路很简单开发一个小型的WEB应用,部署在长沙和北京两台服务器上,安装个tomact就可以运行和部署了这个WEB应用主要做如下事情:
接受请求,封装json串 (为什么JSON可以查一下网上大把的)1)收到http请求后,校验是否是来自另外一个服务器的请求(通过判断请求的IP地址是否否为另外一个服务器的IP地址即可)2)校验通过后读取本地服务器数据库,查询需要实时同步的数据表,查出需要同步的数据,组装成数据对象集(例如一个arraylist),然后转换为 json格式串,写入到response输出流中。
发请求获取返回结果,插入/更新数据库1)从reponse输出流中读取返回结果,将JSON串转化为对象集(网上大把的),然后开始更新/插入数据/删除数据——————————————————————————————————————由于涉及三种操作类型 更新 删除 插入 ,所以可以分别实现三个servlet来分别负责:1)查询新增数据/插入新增对象2) 查询更新数据/更新新增对象3)查询删除数据/删除待删除的对象——————————————————————————————————————定时调度同步程序使用timer写个jar程序,循环每5分钟利用httpconnnection一次请求之行下插入/更新/删除的servlet___________________________________________________________________