bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

udp通信java代碼,udp通信程序

java程序怎么實(shí)現(xiàn)UDP多線程通信 用split方法分不開兩段啊 以下程序有錯(cuò)的地方希望糾錯(cuò) 謝謝!!

a=new byte[8192];

創(chuàng)新互聯(lián)專注于喀什企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。喀什網(wǎng)站建設(shè)公司,為喀什等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

a="沒有該用戶".getBytes();

首先這句的寫法就有大問題了……

你把a(bǔ)先指向了一個(gè)8192長(zhǎng)度的byte數(shù)組 然后馬上又把a(bǔ)指向xxxx.getBytes(),也就是說第一句沒有任何用處

然后你具體的代碼 我已經(jīng)不知道你想做什么了~~~如果你只是想用DatagrameSocket來實(shí)現(xiàn)數(shù)據(jù)傳輸其實(shí)很簡(jiǎn)單的……可以參見orelly的《java網(wǎng)絡(luò)編程》里面的例子 我就不貼了

然后把例子改成多線程的就行了……

一個(gè)簡(jiǎn)單java實(shí)現(xiàn)udp通信

UDP也可以和TCP那樣遍歷list然后發(fā)送啊

客戶端向外面開一個(gè)UDP端口接受數(shù)據(jù)報(bào)

然后服務(wù)器這邊要是有消息要發(fā)送就直接發(fā)送數(shù)據(jù)報(bào)包就可以了嘛

UDP都不用保持著連接的,比TCP還簡(jiǎn)單些

另外也可以用組播來實(shí)現(xiàn),搜索下java UDP 組播,你能找到不少實(shí)例性的代碼,也有聊天室的代碼

java 中怎么使用UDP?

發(fā)送步驟:

使用 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);??//實(shí)例化套間字,指定自己的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)視接受端口。

定義一個(gè)數(shù)據(jù)包(DatagramPacket),儲(chǔ)存接收到的數(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);//定義一個(gè)接收的包??

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 實(shí)現(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

{

//指定端口號(hào),避免與其他應(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ù)的長(zhǎng)度,可使接收數(shù)據(jù)正常顯示,開始時(shí)很容易忽略這一點(diǎn)

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();

}

}

Java寫的一個(gè)udp的demo用來計(jì)算探針傳送過來的數(shù)據(jù),怎么實(shí)現(xiàn)一個(gè)接口來調(diào)用這個(gè)數(shù)據(jù)

Java UDP通信簡(jiǎn)單實(shí)現(xiàn)

1、Java實(shí)現(xiàn)方式

1)server端

/**

*?UDPserver端

*?*/

public?class?UdpServer?{

//?定義一些常量

private?final?intMAX_LENGTH?=?1024;?//?最大接收字節(jié)長(zhǎng)度

private?final?intPORT_NUM???=?5066;???//?port號(hào)

//?用以存放接收數(shù)據(jù)的字節(jié)數(shù)組

private?byte[]?receMsgs?=?new?byte[MAX_LENGTH];

//?數(shù)據(jù)報(bào)套接字

private?DatagramSocket?datagramSocket;

//?用以接收數(shù)據(jù)報(bào)

private?DatagramPacket?datagramPacket;

public?UdpServer(){

try?{

/*******?接收數(shù)據(jù)流程**/

//?創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字,并將其綁定到指定port上

datagramSocket?=?new?DatagramSocket(PORT_NUM);

//?DatagramPacket(byte?buf[],?int?length),建立一個(gè)字節(jié)數(shù)組來接收UDP包

datagramPacket?=?new?DatagramPacket(receMsgs,?receMsgs.length);

//?receive()來等待接收UDP數(shù)據(jù)報(bào)

datagramSocket.receive(datagramPacket);

/******?解析數(shù)據(jù)報(bào)****/

String?receStr?=?new?String(datagramPacket.getData(),?0?,?datagramPacket.getLength());

System.out.println("Server?Rece:"?+?receStr);

System.out.println("Server?Port:"?+?datagramPacket.getPort());

/*****?返回ACK消息數(shù)據(jù)報(bào)*/

//?組裝數(shù)據(jù)報(bào)

byte[]?buf?=?"I?receive?the?message".getBytes();

DatagramPacket?sendPacket?=?new?DatagramPacket(buf,?buf.length,?datagramPacket.getAddress(),?datagramPacket.getPort());

//?發(fā)送消息

datagramSocket.send(sendPacket);

}?catch?(SocketException?e)?{

e.printStackTrace();

}?catch?(IOException?e)?{

e.printStackTrace();

}?finally?{

//?關(guān)閉socket

if?(datagramSocket?!=?null)?{

datagramSocket.close();

}

}

}

}

2)client

/***

*?UDPclientClient端

***/

public?class?UdpClient?{

private?String?sendStr?=?"SendString";

private?String?netAddress?=?"127.0.0.1";

private?final?intPORT_NUM?=?5066;

private?DatagramSocket?datagramSocket;

private?DatagramPacket?datagramPacket;

public?UdpClient(){

try?{

/***?發(fā)送數(shù)據(jù)***/

//?初始化datagramSocket,注意與前面Server端實(shí)現(xiàn)的差別

datagramSocket?=?new?DatagramSocket();

//?使用DatagramPacket(byte?buf[],?int?length,?InetAddress?address,?int?port)函數(shù)組裝發(fā)送UDP數(shù)據(jù)報(bào)

byte[]?buf?=?sendStr.getBytes();

InetAddress?address?=?InetAddress.getByName(netAddress);

datagramPacket?=?new?DatagramPacket(buf,?buf.length,?address,?PORT_NUM);

//?發(fā)送數(shù)據(jù)

datagramSocket.send(datagramPacket);

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

byte[]?receBuf?=?new?byte[1024];

DatagramPacket?recePacket?=?new?DatagramPacket(receBuf,?receBuf.length);

datagramSocket.receive(recePacket);

String?receStr?=?new?String(recePacket.getData(),?0?,?recePacket.getLength());

System.out.println("Client?Rece?Ack:"?+?receStr);

System.out.println(recePacket.getPort());

}?catch?(SocketException?e)?{

e.printStackTrace();

}?catch?(UnknownHostException?e)?{

e.printStackTrace();

}?catch?(IOException?e)?{

e.printStackTrace();

}?finally?{

//?關(guān)閉socket

if(datagramSocket?!=?null){

datagramSocket.close();

}

}

}??

}

本文標(biāo)題:udp通信java代碼,udp通信程序
URL地址:http://vcdvsql.cn/article48/hspchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)Google網(wǎng)站內(nèi)鏈小程序開發(fā)搜索引擎優(yōu)化網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)