本文目錄一覽:
- 1、JAVA解析發送tcp ip報文
- 2、java如何通過tcp發送指令
- 3、請教大神,java socket介面,TCP長連接,怎麼解析和發送一種協議格式數據包
- 4、java中怎麼用TCP發送數據?
JAVA解析發送tcp ip報文
tcp報文,首先你們要設計好包頭和包尾,比如0x2是包頭,0x3就是包尾。這樣收發解析才不會亂。
裡面的協議基本上就是位元組的形式就好。無非就是服務端encode一下,客戶端decode。
不過你在做這個之前一定要寫好測試,否則數位元組能數死人。
java如何通過tcp發送指令
以下是一個展示java使用tcp通訊的簡單例子,包括伺服器和客戶端代碼:
/**
*TCPServer
*/
import java.io.*;
import java.net.*;
class TCPServer{
public static void main(String[] args)throws IOException{
ServerSocket listen = new ServerSocket(5050);
Socket server = listen.accept();
InputStream in = server.getInputStream();
OutputStream out = server.getOutputStream();
char c = (char)in.read();
System.out.println(“收到:” + c);
out.write(‘s’);
out.close();
in.close();
server.close();
listen.close();
}
}
/**
*TCPClient
*/
import java.io.*;
import java.net.*;
class TCPClient{
public static void main(String[] args)throws IOException{
Socket client = new Socket(“127.0.0.1” , 5050);
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
out.write(‘c’);
char c = (char)in.read();
System.out.println(“收到:” + c);
out.close();
in.close();
client.close();
}
}
請教大神,java socket介面,TCP長連接,怎麼解析和發送一種協議格式數據包
建議你下載我的java版本至尊聊天程序源碼下去參考。在CSDN或百度上找吧。
協議完全自己來定製,數據以位元組發送,以什麼開始,什麼結束,中間分幾段,都可由你自己來定,接收時,就按你定的規則來解析並還原。比如:我要的協議格式為
:10:3:5:content:
:表示一條消息的開始。
10表示總消息長度(只是個代數,有可能不是10,需要你在發送前計算)
:為分隔符
3為頭消息長度,也可能不是3
5表示後面的消息內容長度,甚至還可以定製,是否有圖片,從多少位置開始是圖片的數據。
:表示結束標誌
沒有人限制你的協議。
關鍵一點:你在收取的時候,一定要注意數據可能會粘包,這個問題很頭疼的。因為一般都是多線程模式。這需要你自己來處理它。一言難清。可以參考我的聊天程序。
java中怎麼用TCP發送數據?
println和 print的區別 還是參照javadoc比較準確,就是最後是否跟上一個換行。這種函數含義的解釋,查手冊是最準確的。
s.getOutputStream() 返回的結果 直接就是 OutputStream 這個類本身就是用於發送 byte[]的。
字元串轉化成 byte[] 直接調用getBytes。
LZ應該詳細閱讀java手冊。對於已經接觸到的類 比如String,這種基本的,要看看它所有的函數實現。這就和學英語背單詞一樣,必須要有量的上去才行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258709.html