您现在的位置是:主页 > news > 西安双语网站建设/长沙关键词优化推荐
西安双语网站建设/长沙关键词优化推荐
admin2025/4/29 9:55:34【news】
简介西安双语网站建设,长沙关键词优化推荐,河南企业建设网站,在internet上建设网站这个例子的作用:发送一个udp请求,服务器端返回这个客户端对外(公网)的ip和port 特点: 1、指定本地udp的端口,这样做的效果是短时间内udp对外的port就不会改变 2、服务器端是用c写的,难点是怎…
西安双语网站建设,长沙关键词优化推荐,河南企业建设网站,在internet上建设网站这个例子的作用:发送一个udp请求,服务器端返回这个客户端对外(公网)的ip和port 特点: 1、指定本地udp的端口,这样做的效果是短时间内udp对外的port就不会改变 2、服务器端是用c写的,难点是怎…
这个例子的作用:发送一个udp请求,服务器端返回这个客户端对外(公网)的ip和port
特点:
1、指定本地udp的端口,这样做的效果是短时间内udp对外的port就不会改变
2、服务器端是用c++写的,难点是怎样发送和读c++返回的内容
服务器约定返回8个字节,前4个字节是ip,后4个字节是端口
public NetInfo aUdpClient(String tag,int portLocal){NetInfo returnNetInfo=new NetInfo();DatagramPacket datagramPacket=null;DatagramSocket datagramSocket=null;String netAddress = "10.19.155.78";int PORT_NUM = 7351;//int LOCALPORT_NUM = 10988;try {/*** 发送数据***/// 初始化datagramSocket,注意与前面Server端实现的差别datagramSocket = new DatagramSocket(portLocal);// 使用DatagramPacket(byte buf[], int length, InetAddress address, int port)函数组装发送UDP数据报InetAddress address = InetAddress.getByName(netAddress);// 发送数据,c++ 需要多发送一位,实际有效内容为dataArraay[0]=‘a’byte[] dataArray=new byte[2];dataArray[0]='a';datagramPacket = new DatagramPacket(dataArray, dataArray.length, address, PORT_NUM);datagramSocket.send(datagramPacket);/*** 接收数据***/byte[] receBuf = new byte[8];DatagramPacket recePacket = new DatagramPacket(receBuf, receBuf.length);datagramSocket.receive(recePacket);int len=recePacket.getLength();String myIp="";int myPort=-1;if(len!=-1 && len==8){byte[] ipByte=new byte[4];System.arraycopy(recePacket.getData(),0,ipByte,0,4);myIp=bytesToIp(ipByte);byte[] portByte=new byte[4];System.arraycopy(recePacket.getData(),4,portByte,0,4);myPort=bytes2int(portByte);returnNetInfo.ip=myIp;returnNetInfo.port=myPort;}} catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 关闭socketif(datagramSocket != null){datagramSocket.close();}}return returnNetInfo;
}