久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
通過無線電跳頻技術想到的端口跳變通信
[打印本頁]
作者:
liuyy
時間:
2015-1-11 19:49
標題:
通過無線電跳頻技術想到的端口跳變通信
server.java
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;
public class server {
public static void main(String[] args) throws Exception {
// 創建服務器端的socket對象
ServerSocket ss = new ServerSocket(1989);
// 監聽連接
Socket socket = ss.accept();
// 直到連接建立好之后代碼才會往下執行
System.out.println("客戶端已連接...");
// 獲得服務器端的輸入流,從客戶端接收信息
InputStream is = socket.getInputStream();
// 服務器端的輸出流,向客戶端發送信息
OutputStream os = socket.getOutputStream();
// 接收客戶端的初始握信息
byte[] buffer = new byte[200];
int length = 0;
length = is.read(buffer);
String str = new String(buffer, 0, length);
System.out.println("客戶端握手連接口令為:" + str);
// 需要使用跳端口發送的數據
byte[] buffer1 = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n' };
for (int i = 0; i < 14; i++) {
// 一個標準的通信數據封包
byte[] fengbao = new byte[3];// 2字節端口好1字節附加數據
// 隨機生成下次連接的端口號,必須保證端口號范圍在1024~65535之間減少不必要的碰撞
int nexthost = new Random().nextInt(60000) + 1;
if (nexthost <= 1024)
nexthost += 1024;
// 封裝一個通信數據包
fengbao[0] = buffer1[i]; // 填充附加數據
byte[] nexthost_byte = toByteArray(nexthost, 2);// 整形數據轉換為字節數組
fengbao[1] = nexthost_byte[0];// 填充下次連接端口號
fengbao[2] = nexthost_byte[1];
// 服務器端的輸出
os.write(fengbao);// 發送一個3字節的標準通信數據包
// 釋放此次連接用到資源
is.close();
os.close();
socket.close();
// 準備開始下一次跳端口連接
if(i<13)
{
ss = new ServerSocket(nexthost);
System.out.println("等待客戶端下一次連接...............");
socket = ss.accept();
System.out.println("客戶端已連接此次連接端口號為:" + nexthost);
is = socket.getInputStream();
os = socket.getOutputStream();
}
}
}
// 將一個iArrayLen長度的整型數據轉換為數組類型字節數組的低位是整型的低字節位
public static byte[] toByteArray(int iSource, int iArrayLen) {
byte[] bLocalArr = new byte[iArrayLen];
for (int i = 0; (i < 4) && (i < iArrayLen); i++) {
bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);
}
return bLocalArr;
}
// 將byte數組bRefArr轉為一個整數,字節數組的低位是整型的低字節位
public static int toInt(byte[] bRefArr, int iArrayLen) {
int iOutcome = 0;
byte bLoop;
for (int i = 0; i < iArrayLen; i++) {
bLoop = bRefArr[i];
iOutcome += (bLoop & 0xFF) << (8 * i);
}
return iOutcome;
}
}
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
client.java
public class client {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("192.168.0.61", 1989);
// 客戶端的輸出流
OutputStream os = socket.getOutputStream();
// 將握手口令信息寫入流,把這個信息傳遞給服務器
os.write("你好服務端測試下跳端口通信...".getBytes());
// 從服務器端接收信息
InputStream is = socket.getInputStream();
for(int i=0;i<14;i++)
{
byte[] fengbao = new byte[3];
byte[] host = new byte[2];
int nexthost;
is.read(fengbao);
host[0]=fengbao[1];
host[1]=fengbao[2];
nexthost=toInt(host,2);
System.out.println("下次連接端口為為:"+nexthost+"此次連接收到的附加數據為:"+(char)fengbao[0]);
//釋放此次連接用到的資源
is.close();
os.close();
socket.close();
//準備開始下一次跳端口連接
if(i<13)
{
socket = new Socket("192.168.0.61", nexthost);
os = socket.getOutputStream();
is = socket.getInputStream();
}
}
}
//將一個iArrayLen長度的整型數據轉換為數組類型字節數組的低位是整型的低字節位
public static byte[] toByteArray(int iSource, int iArrayLen) {
byte[] bLocalArr = new byte[iArrayLen];
for (int i = 0; (i < 4) && (i < iArrayLen); i++) {
bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);
}
return bLocalArr;
}
// 將byte數組bRefArr轉為一個整數,字節數組的低位是整型的低字節位
public static int toInt(byte[] bRefArr,int iArrayLen) {
int iOutcome = 0;
byte bLoop;
for (int i = 0; i <iArrayLen; i++) {
bLoop = bRefArr[i];
iOutcome += (bLoop & 0xFF) << (8 * i);
}
return iOutcome;
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费的黄网站
|
91精品国产99久久久久久红楼
|
欧美国产一区二区三区
|
精品福利在线
|
在线免费国产
|
大尺度做爰床戏呻吟舒畅
|
欧美a级成人淫片免费看
|
亚洲一区二区免费
|
国产成人午夜精品
|
午夜小视频在线观看
|
国产美女永久免费无遮挡
|
国产一区二区视频在线观看
|
欧美www.
|
四虎海外
|
欧美精品日韩少妇
|
国产区精品
|
二区三区在线观看
|
九色在线视频
|
日韩毛片在线播放
|
欧美一级特黄视频
|
99re在线观看视频
|
黄色三级免费
|
欧美性生活网站
|
九色在线视频
|
日韩亚洲一区二区
|
日本欧美久久久久免费播放网
|
色黄大色黄女片免费中国
|
亚洲乱码一区二区
|
午夜精品视频
|
国产女人高潮视频
|
日韩精品国产精品
|
久久av片
|
超碰在线免费
|
色伊人网
|
成人精品在线视频
|
欧美性生交
|
久久精品视频99
|
成年人国产
|
午夜激情福利视频
|
在线播放毛片
|
免费毛片观看
|