日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DatagramSocket总是发送UDP数据后无法接收数据

發布時間:2024/6/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DatagramSocket总是发送UDP数据后无法接收数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ref:http://blog.chinaunix.net/uid-20771867-id-3416509.html
???????? cmd:telnet localhost 5554
??????? redir add udp:8002:8001 (將PC 8002端口映射為模擬器 8001端口)
???????? 模擬器-SERVER:ServerSocket server = new ServerSocket(8001);//zcl:7100改為2888
??????????? public static void ReceiveUDP() throws IOException {
???????????? // TODO Auto-generated method stub
ReliableUDP udp = new ReliableUDP(null, "172.17.21.231", 8001, 8001);
???????????? byte[] revBuf = new byte[1024];
???????????? int res = udp.ReadFixedLength(revBuf, 1);
??????????? }?????????????????????
???????? PC-CLIENT:Socket socket = new Socket("127.0.0.1", 8002);?
????????? 《TCP/UDP測試工具》 UDP:127.0.0.1 port 8002 (注意:8002是PC的映射端口)?

ok?——》?最終找到原因:是redir add會搶占端口:??????????
ok?——》解決方法:環境設置——關鍵是一定要使用remotePC,單靠本機無法實現調試
??

+++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++ localPC + + remotePC ++ ip:172.17.22.8 + + ip:172.17.21.54 ++ redir udp:8002:8001 + + ++ + + ++ +++++++++++++++++++++++++++++ + + ++ + android vm + + + ++ + + + + ++ + + + + ++ + send(DestIP=remotePC, + + + Receive(localPort=8001) ++ + localPort=8001) + + + ++ + DestPort=8001) + + + ++ + -----8001---------------------------------> 8001 -+ + + + + ++ + + + + ++ + Receive(localPort=8001), + + + send( DestIP=localPC ++ + + + + localPort=8001) ++ + + + + DestPort=8002) ++ + + + + ++ + 8001<----------+---8002<----------+-----8001 ++ + + + + ++ + + + + ++ +++++++++++++++++++++++++++++ + + ++ + + ++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++

ok?——》code:
???public class LEDControlerDriver {
????public static void SendUDP() {
?????// TODO Auto-generated method stub
?????ReliableUDP udp = new ReliableUDP(null, DestIP, 8001, 8001);//to lydsw?前一個8001是模擬器-SERVER port,后一個8001是pc 接收消息的port,注意!不是pc映射給模擬器的端口(8002)
?????String s= "32323213";
?????int res = udp.SendFixedLength(s.getBytes(), s.length());?
?????
????}
????
????public static void ReceiveUDP() throws IOException {
?????// TODO Auto-generated method stub
?????ReliableUDP udp = new ReliableUDP(null, DestIP, 8001, 8001);//to lydsw?前一個8001是模擬器-SERVER port,后一個8001是pc 接收消息的port,注意!不是pc映射給模擬器的端口(8002)
?????byte[] revBuf = new byte[1];
?????int res = udp.ReadFixedLength(revBuf, 1);
????}
?????????????????
???public class ReliableUDP {
????public int SendFixedLength(byte[] sendBuf,int nSendLen){
?????Log.i("UDP Demo", "發送數據(1):");
?????//?check
??????? int res = 1;
??????? if (sendBuf.length!=nSendLen) {
??????return -2;
?????}?
???????
??????? //?create socket
??????? DatagramSocket socket = null;
?????try {
??????socket = new DatagramSocket(null);?? // 指定Null很重要,否則Java會自動隨機選個可用端口來綁定
??????socket.setReuseAddress(true);?//?DatagramSocket的setReuseAddress(true)方法執行后,可以允許多個DatagramSocket
??????????????//?綁定到相同的IP地址和端口,那么發送到此IP地址和端口的數據能夠被復制到多個DatagramSocket
??????socket.setSoTimeout(10000);
??????socket.bind(new InetSocketAddress(this.LocalPort));?
?????} catch (SocketException e) {
??????Log.i("UDP Demo", "SendFixedLength:socket create failed1:"+e.getMessage());
??????return -3;
?????} ????
???????
??????? Log.i("UDP Demo", "發送數據(2):");
??????? // 定義一個用于發送的DatagramPacket對象?
?????? ?DatagramPacket outPacket = null;
??????? try {
??????????????? outPacket = new DatagramPacket(sendBuf , nSendLen? , InetAddress.getByName(this.IPaddr) , this.TargetPort);?
?????????????????? socket.send(outPacket);?
?????????????????? Log.i("UDP Demo", "SendData:UDP發送數據:"+StringHexbyteTransform.bytesToHexString(sendBuf));
?????} catch (IOException e2) {
??????Log.i("UDP Demo", "SendData:io failed:"+e2.toString()+":"+e2.getMessage());
??????res = -52;
?????}??
???????
??????? socket.close();
??????? return res;
????}
???????????????????????????????????????????????????
??????????????????????????????????????????????????
????public int ReadFixedLength(byte[] revBuf,int nRecvLen, int timeout)
????{
?????Log.i("UDP Demo", "Read數據(1):");
?????//?check
??????? int res = 1;
??????? int len = nRecvLen;
??????? if (-1 == nRecvLen) {
??????? ?len = revBuf.length;
?????}?
???????
??????? //?create socket
??????? DatagramSocket socket = null;
?????try {
??????socket = new DatagramSocket(null);?? // 指定Null很重要,否則Java會自動隨機選個可用端口來綁定
??????socket.setReuseAddress(true);?//?DatagramSocket的setReuseAddress(true)方法執行后,可以允許多個DatagramSocket
??????????????//?綁定到相同的IP地址和端口,那么發送到此IP地址和端口的數據能夠被復制到多個DatagramSocket
??????socket.setSoTimeout(timeout);
??????socket.bind(new InetSocketAddress(this.LocalPort));?
?????} catch (SocketException e) {
??????Log.i("UDP Demo", "SendFixedLength:socket create failed1:"+e.getMessage());
??????return -3;
?????} ????
???????
??????? Log.i("UDP Demo", "Read數據(2):");
??????? // 定義一個用于發送的DatagramPacket對象?
?????? ?DatagramPacket inPacket = null;
??????? try {
??????? ??inPacket = new DatagramPacket(revBuf , len);
??????? ??socket.receive(inPacket);?
??????? ??ExpandRevBuffer(revBuf);
?????????????????? Log.i("UDP Demo", "receive:"+StringHexbyteTransform.bytesToHexString(revBuf));?
?????} catch (IOException e2) {
??????Log.i("UDP Demo", "SendData:io failed:"+e2.toString()+":"+e2.getMessage());
??????res = -52;
?????}??
???????
??????? socket.close();
??????? return res;
????}

轉載于:https://www.cnblogs.com/carl2380/p/4212578.html

總結

以上是生活随笔為你收集整理的DatagramSocket总是发送UDP数据后无法接收数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品二三区 | 欧美xxxx日本和非洲 | 看全色黄大色黄大片大学生 | 久久久久极品 | 成人精品视频一区二区三区尤物 | 国产私密视频 | 青青草国产精品视频 | 亚洲第一免费播放区 | 99re色| 国产91看片| 中文字幕欧美另类精品亚洲 | 亚洲偷偷自拍 | 欧美成人午夜精品免费 | 深夜影院在线观看 | 国产日韩专区 | 亚洲黄色视屏 | 欧美1级片 | 亚洲啪视频 | 亚洲午夜福利一区二区三区 | 日本一区二区不卡在线观看 | 中文久久字幕 | 欧美理论在线 | 国产精品一级二级 | 91国产免费观看 | 一级看片免费视频 | 狠狠涩 | 青娱乐激情 | av三级在线观看 | 中文字幕亚洲专区 | 岛国av网站 | 五月天开心网 | 人妻系列一区 | 玉女心经是什么意思 | 舐め犯し波多野结衣在线观看 | 成人h视频在线 | 亚洲午夜18毛片在线看 | 日韩一区二区三区四区五区六区 | 91毛片在线观看 | 国产又粗又猛又爽又黄的网站 | 伊人久久av | 天堂伊人 | 中文字幕一本 | 亚洲欧美激情图片 | 亚洲三级久久 | a级黄色一级片 | 国产成人一区二区三区 | 国产黄视频网站 | 最新日韩在线视频 | 国产奶头好大揉着好爽视频 | 久久精品国产一区二区电影 | 日日夜夜免费 | 天天弄 | 日本成人性爱 | 欧美成人日韩 | 色妹子综合 | 久久综合色视频 | 青娱乐在线视频观看 | 96精品视频 | 国产精品www. | 亚洲综合图片网 | 国产女人18毛片水真多 | 国产成人在线一区二区 | 女女调教被c哭捆绑喷水百合 | a毛片在线观看 | 日本一区免费视频 | 亚洲第一激情 | 国产精品无码免费专区午夜 | 黄片毛片在线观看 | 欧美挤奶吃奶水xxxxx | 亚洲天堂avav | 欧美手机在线观看 | 激情久久av | 痴汉电车在线观看 | 水蜜桃av无码 | 粉色视频免费观看 | 精品日韩中文字幕 | 国精产品一区一区三区 | 中文字幕女优 | 黄色国产毛片 | 色婷婷狠狠操 | 日韩美女中文字幕 | 成人免费黄| 五十路在线视频 | 性色在线 | 亚洲1级片| 久久久久99人妻一区二区三区 | 国产美女操 | 四虎永久在线 | 日韩18p| 亚洲AV成人无码久久精品巨臀 | 国产97在线 | 亚洲 | 在线视频精品免费 | 日韩性生交大片免费看 | 黑人黄色片 | 夜间福利网站 | 瑟瑟视频免费看 | 一级大片儿 | 性欧美videos另类艳妇3d | 国产午夜精品一区二区三区嫩草 |