using system;
using system.collections;
using system.collections.generic;
using system.io;
using system.net;
using system.net.networkinformation;
using system.net.sockets;
using system.text;
using system.threading;
using unityengine;
using unityengine.events;
using unityengine.networking;
namespace damtool
private
void
lateupdate()
void
start()
if(useouttargetipandtargetport)
//在這裡初始化server
"1234");
}///
/// 開啟載入執行緒
///
///
public
void
loadudpdata_outip_outport
(unityaction fun=
null
)///
/// 載入udp資料
///
/// 載入完畢執行的方法
///
ienumerator
reallyloadudpdata
(unityaction fun=
null)}
}///
/// 初始化套接字
///
public
void
initsocket()
,null);
#endif
//定義客戶端
//ipendpoint sender = new ipendpoint(ipaddress.any, 0);
ipendpoint sender =
newipendpoint
(ipaddress.
parse
(targetipaddress)
, targetconnectport)
; clientend =
(endpoint)sender;
print
("等待連線資料");
//開啟乙個執行緒連線
connectthread =
newthread
(new
threadstart
(socketreceive));
confirmthread =
newthread
(new
threadstart
(strconfirm));
connectthread.
start()
; confirmthread.
start()
;}///
/// 套接字傳送內容
///
/// 傳送內容
/// 是否加入確認陣列,預設為不加入
public
void
socketsend
(string sendstr,
string ip="",
int port=0,
bool needconfirm =
false)}
}else}}
}///
/// 傳送16進製制指令
///
/// 傳送內容
public
void
socketsendhex
(string sendstr,
string ip ="",
int port =0,
bool needconfirm =
false)}
}else}}
}//伺服器接收
void
socketreceive()
}//字元確認
void
strconfirm()
}}}//連線關閉
void
socketquit()
if(confirmthread !=
null
)//最後關閉socket
if(socket !=
null
) socket.
close()
; debug.
logwarning
("斷開連線");
}//重新連線
// use this for initialization
public
void
reconnectserver()
void()
///
/// 獲取ip,安卓端不可用
///
///
///
public
string
getip
(addressfam addfam)
string output ="";
foreach
(networkinte***ce item in networkinte***ce.
getallnetworkinte***ces()
)}//ipv6
else
if(addfam == addressfam.ipv6)}}
}}return output;
}//或取系統ip
public
string
getip()
}}}}
return addressip;
#endif
string ip ="";
ipaddress[
] ips = dns.
gethostaddresses
(dns.
gethostname()
);獲取本機名dns.gethostaddresses()根據本機名獲取ip位址組
foreach
(ipaddress ip in ips)
else
if(ip.addressfamily == addressfamily.internetworkv6)
}return ip;
}//byte轉16進製制數
static
string
byte2hex
(byte wbyte)
//btye陣列轉字元,需要陣列長度
static
string
byte2hex
(byte
_byte,
int _length)
return hexstr;}}
}public
enum addressfam
已用於很多專案,效果不錯,用的話需要稍作修改
public
void
initsocket()
, null);
#endif
//定義客戶端
//ipendpoint sender = new ipendpoint(ipaddress.any, 0);
ipendpoint sender =
newipendpoint
(ipaddress.
parse
(targetipaddress1)
, targetconnectport1)
; clientend =
(endpoint)sender;
print
("等待連線資料");
//開啟乙個執行緒連線
connectthread =
newthread
(new
threadstart
(socketreceive));
confirmthread =
newthread
(new
threadstart
(strconfirm));
connectthread.
start()
; confirmthread.
start()
;}
在安卓端如果出現無法收到訊息,但是可以傳送訊息的情況,將初始化方法中的防止出現連線錯誤的**注釋掉就可以了 springMVC中傳送郵件可傳送附件
以html傳送 bodypart bodypart new mimebodypart bodypart.setcontent content,text html charset utf 8 multipart multipart new mimemultipart multipart.addbody...
socket 傳送接收16進製制資料
背景 做了個智慧型櫃管理系統,需要和智慧型櫃對接。互動使用的是socket。轉換邏輯 傳送規則 資料 1 16進製制 0x01 高4位 0x00 低四位 0x01 10進製 0 1 ansi碼 48,49 16進製制 0x30,0x31 傳送 ansi如圖 傳送接收資料 start為碼頭,end為碼...
串列埠網口16進製制傳送的和ASCII傳送的區別
5 的ascii碼和字元 0 的ascii碼傳送出去,即是0x35,0x30 當我們按16進製制傳送50 時,這時50位乙個數即0x50。這就是為什麼按16進製制傳送的效率要高於ascii碼的效率。從中我們也可以看出計算機底層傳送資料是乙個個數。當我們接受的時候,我們同樣也是接受到乙個的數。當我們接...