真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

udp廣播java代碼,java的udp編程

java 中怎么使用UDP?

發(fā)送步驟:

創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機(jī)托管價格性價比高,為金融證券行業(yè)資陽托管服務(wù)器,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

使用 DatagramSocket(int port) 建立socket(套間字)服務(wù)。

將數(shù)據(jù)打包到DatagramPacket中去

通過socket服務(wù)發(fā)送 (send()方法)

關(guān)閉資源

import?java.io.IOException;??

import?java.net.*;??

public?class?Send?{??

public?static?void?main(String[]?args)??{??

DatagramSocket?ds?=?null;??//建立套間字udpsocket服務(wù)??

try?{??

ds?=?new?DatagramSocket(8999);??//實例化套間字,指定自己的port??

}?catch?(SocketException?e)?{??

System.out.println("Cannot?open?port!");??

System.exit(1);???

}??

byte[]?buf=?"Hello,?I?am?sender!".getBytes();??//數(shù)據(jù)??

InetAddress?destination?=?null?;??

try?{??

destination?=?InetAddress.getByName("192.168.1.5");??//需要發(fā)送的地址??

}?catch?(UnknownHostException?e)?{??

System.out.println("Cannot?open?findhost!");??

System.exit(1);???

}??

DatagramPacket?dp?=???

new?DatagramPacket(buf,?buf.length,?destination?,?10000);????

//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的端口,不同于自己的端口?。??

try?{??

ds.send(dp);??//發(fā)送數(shù)據(jù)??

}?catch?(IOException?e)?{??

}??

ds.close();??

}??

}

接收步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務(wù)。(我們注意到此服務(wù)即可以接收,又可以發(fā)送),port指定監(jiān)視接受端口。

定義一個數(shù)據(jù)包(DatagramPacket),儲存接收到的數(shù)據(jù),使用其中的方法提取傳送的內(nèi)容

通過DatagramSocket 的receive方法將接受到的數(shù)據(jù)存入上面定義的包中

使用DatagramPacket的方法,提取數(shù)據(jù)。

關(guān)閉資源。

import?java.net.*;??

public?class?Rec?{??

public?static?void?main(String[]?args)?throws?Exception?{??

DatagramSocket?ds?=?new?DatagramSocket(10000);??//定義服務(wù),監(jiān)視端口上面的發(fā)送端口,注意不是send本身端口??

byte[]?buf?=?new?byte[1024];//接受內(nèi)容的大小,注意不要溢出??

DatagramPacket?dp?=?new?DatagramPacket(buf,0,buf.length);//定義一個接收的包??

ds.receive(dp);//將接受內(nèi)容封裝到包中??

String?data?=?new?String(dp.getData(),?0,?dp.getLength());//利用getData()方法取出內(nèi)容??

System.out.println(data);//打印內(nèi)容??

ds.close();//關(guān)閉資源?????

}??

}

Java如何使用UDP協(xié)議實現(xiàn)多人聊天?

UDP 是廣播的,如果是做實時的聊天,就開兩個線程、不需要服務(wù)器端。一個專門接收、一個做發(fā)送

java里怎么發(fā)廣播呀

java里怎么發(fā)廣播

public void onReceive(Context context,Intent intent){

Intent intent = new Intent(context,XxxService.class);

context.startService(intent);

}

Intent intent = new Intent();

intent.setAction("...");

Context.sendBroadcast(intent);

java編程 利用UDP方式,客戶端向服務(wù)器發(fā)送三邊值,服務(wù)器,根據(jù)三邊值計算三角形面積返回客戶端

創(chuàng)建兩個類 分別添加main方法 一個作為server類一個作為client類

客戶端先發(fā)送再接收 ?服務(wù)器端先接收再發(fā)送

下面給你一個server和client的例子 你在基礎(chǔ)上改一下就行了

client發(fā)送的時候發(fā)送三邊值 ?server接收后 寫一個計算三角形面積的函數(shù) 把接收到的三邊值傳入函數(shù)計算出結(jié)果作為數(shù)據(jù)返回到client端

/**

*UDPServer

*/

import?java.io.*;

import?java.net.*;

class?UDPServer{

public?static?void?main(String[]?args)throws?IOException{

DatagramSocket??server?=?new?DatagramSocket(5050);

byte[]?recvBuf?=?new?byte[100];

DatagramPacket?recvPacket?

=?new?DatagramPacket(recvBuf?,?recvBuf.length);

server.receive(recvPacket);

String?recvStr?=?new?String(recvPacket.getData()?,?0?,?recvPacket.getLength());

System.out.println("Hello?World!"?+?recvStr);

int?port?=?recvPacket.getPort();

InetAddress?addr?=?recvPacket.getAddress();

String?sendStr?=?"Hello?!?I'm?Server";

byte[]?sendBuf;

sendBuf?=?sendStr.getBytes();

DatagramPacket?sendPacket?

=?new?DatagramPacket(sendBuf?,?sendBuf.length?,?addr?,?port?);

server.send(sendPacket);

server.close();

}

}

/**

*UDPClient

*/

import?java.io.*;

import?java.net.*;

class?UDPClient{

public?static?void?main(String[]?args)throws?IOException{

DatagramSocket?client?=?new?DatagramSocket();

String?sendStr?=?"Hello!?I'm?Client";

byte[]?sendBuf;

sendBuf?=?sendStr.getBytes();

InetAddress?addr?=?InetAddress.getByName("127.0.0.1");

int?port?=?5050;

DatagramPacket?sendPacket?

=?new?DatagramPacket(sendBuf?,sendBuf.length?,?addr?,?port);

client.send(sendPacket);

byte[]?recvBuf?=?new?byte[100];

DatagramPacket?recvPacket

=?new?DatagramPacket(recvBuf?,?recvBuf.length);

client.receive(recvPacket);

String?recvStr?=?new?String(recvPacket.getData()?,?0?,recvPacket.getLength());

System.out.println("收到:"?+?recvStr);

client.close();

}

}

java 實現(xiàn) UDP連接的源程序

import java.io.*;

import java.lang.*;

import java.net.*;

public class uclient

{

private DatagramSocket cli;

private DatagramPacket pac;

private byte sb[];

private String sen;

public uclient()

{

Init();

}

public void Init()

{

try

{

//指定端口號,避免與其他應(yīng)用程序發(fā)生沖突

cli=new DatagramSocket(10002);

sb=new byte[1024];

sen="UDP方式發(fā)送數(shù)據(jù)";

sb=sen.getBytes();

pac=new DatagramPacket(sb,sb.length,InetAddress.getByName("localhost"),10005);

cli.send(pac);

}

catch(SocketException se)

{

se.printStackTrace();

}

catch(IOException ie)

{

ie.printStackTrace();

}

}

public static void main(String args[])

{

new uclient();

}

}

接收端數(shù)據(jù):

//加以改進(jìn)代碼,可以改變接收方式

import java.io.*;

import java.lang.*;

import java.net.*;

public class userve

{

private DatagramSocket ser;

private DatagramPacket pac;

private byte rb[];

private String rev;

public userve()

{

Init();

}

public void Init()

{

try

{

ser=new DatagramSocket(10005);

rb=new byte[1024];

pac=new DatagramPacket(rb,rb.length);

rev="";

int i=0;

while(i==0)//無數(shù)據(jù),則循環(huán)

{

ser.receive(pac);

i=pac.getLength();

//接收數(shù)據(jù)

if(i0)

{

//指定接收到數(shù)據(jù)的長度,可使接收數(shù)據(jù)正常顯示,開始時很容易忽略這一點

rev=new String(rb,0,pac.getLength());

System.out.println(rev);

i=0;//循環(huán)接收

}

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

public static void main(String args[])

{

new userve();

}

}


網(wǎng)站標(biāo)題:udp廣播java代碼,java的udp編程
URL鏈接:http://weahome.cn/article/hcdsdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部