亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php做為socket客戶端如果發送實體類(bean)給JAVAsocket服務端?

php做為socket客戶端如果發送實體類(bean)給JAVAsocket服務端?

千萬里不及你 2019-02-27 17:15:20
由于JAVA服務端是其他人開發的, 現在只有一份協議文檔. 現在做了一個掃碼開箱的功能. APP + JAVA + socket的方式. 由于業務需求現在要增加小程序掃碼開箱的方式. 通過查看安卓的源碼與服務端的JAVA代碼ps:LZ自身只會PHP是同事看的APP發送的是一個實體類給后端的. 那么PHP怎么搞一個實體類給JAVA, 還是可以使用其它方案解決? 更新... Byte bytes[26] = {0,8,0,22,[marr[0] intValue],[marr[1] intValue],[marr[2] intValue],[marr[3] intValue],0,0,0,1,0,0,0,0,0,0,0,0,[mmarr[0] intValue],[mmarr[1] intValue],[mmarr[2] intValue],[mmarr[3] intValue],0x0D,0x0A}; send(self.clientSocket, bytes, 26, 0); 上面一段是ios APP里的一段, 發送的是一個Byte. 那是不是PHP轉成一個Byte發送就行呢? 查閱的資料
查看完整描述

3 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

發送的不是實體類, 傳輸過程叫數據流. 程序接到后是二進制.

而JAVA里的byte是基本變量類型. C, python, php, nodejs, 只有JAVA才有byte的類型.

一個byte等于八位的二進制 如: 0000 1111, 二進可以轉成對應的ASCII碼或unicode碼.

查看完整回答
反對 回復 2019-03-01
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

發送實體類肯定是要序列化成字節的,看看安卓那邊用的什么序列化框架。如果是支持跨語言的那就好辦,不支持就和JAVA服務器端的人商量下特殊處理吧。

查看完整回答
反對 回復 2019-03-01
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

如過沒有現成的框架或sdk的話會很麻煩,因為php根本沒有字節這個東西,需要pack,unpack各種轉成二進制,而且需要注意大小端字節序,還有需要多線程或多進程來實現心跳包、守護進程等,而php對這方面支持不是很好。
可以試下swoole或者workman看看能不能實現吧,應該也不是很好實現,需要配合服務端java各種調試的。

查看完整回答
反對 回復 2019-03-01
  • 3 回答
  • 0 關注
  • 465 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號