91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 72KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-15
  • 語(yǔ)言: Java
  • 標(biāo)簽: java??UDP??

資源簡(jiǎn)介

設(shè)計(jì)要求: 1)按照UDP協(xié)議數(shù)據(jù)包發(fā)送方式實(shí)現(xiàn)用戶端之間的通信。 2)統(tǒng)計(jì)包的發(fā)送和接收數(shù),計(jì)算數(shù)據(jù)包的丟失數(shù)。 3)設(shè)計(jì)美觀易用的圖形界面。

資源截圖

代碼片段和文件信息

package?com.ydq.udp;

import?java.io.IOException;
import?java.io.RandomAccessFile;
import?java.net.DatagramPacket;
import?java.net.DatagramSocket;
import?java.net.InetAddress;
import?java.net.SocketTimeoutException;

import?com.ydq.util.UDPUtils;

public?class?UDPClient?{

private?String?SEND_FILE_PATH?=?“F:/1.avi“;
private?String?ipString;
private?int?port;
int?sendCount?=?0;
int?lostCount?=?0;

public?UDPClient(String?ipString?int?port)?{
this.ipString?=?ipString;
this.port?=?port;
}

public?void?send()?{

byte[]?buf?=?new?byte[UDPUtils.BUFFER_SIZE];
byte[]?receiveBuf?=?new?byte[1024];

RandomAccessFile?accessFile?=?null;
DatagramPacket?dpk?=?null;
DatagramSocket?dsk?=?null;
int?readSize?=?-1;
try?{
//?讀取文件
accessFile?=?new?RandomAccessFile(SEND_FILE_PATH?“r“);
//?定義DatagramPacket設(shè)定發(fā)送的目的IP及端口
dpk?=?new?DatagramPacket(buf?buf.length
InetAddress.getByName(ipString)?port);
//?定義DatagramSocket
dsk?=?new?DatagramSocket(UDPUtils.PORT
InetAddress.getByName(“l(fā)ocalhost“));
//?設(shè)置超時(shí)
dsk.setSoTimeout(10000);
//?開(kāi)始傳輸文件
while?((readSize?=?accessFile.read(buf?0?buf.length))?!=?-1)?{
//?將讀入緩沖區(qū)的數(shù)據(jù)設(shè)置到dpk中
dpk.setData(buf?0?readSize);
//?發(fā)送數(shù)據(jù)包
dsk.send(dpk);
//?記錄發(fā)送數(shù)據(jù)包個(gè)數(shù)
sendCount++;
//?等待接收端返回的確認(rèn)信息
while?(true)?{
//?設(shè)置接收返回?cái)?shù)據(jù)的緩沖區(qū)為receiveBuf
dpk.setData(receiveBuf?0?receiveBuf.length);
try?{
dsk.receive(dpk);
//?確認(rèn)接收端返回的確認(rèn)信息
if?(!UDPUtils.isEqualsByteArray(UDPUtils.successData
receiveBuf?dpk.getLength()))?{
//?如果不是確認(rèn)成功的信息則重發(fā)數(shù)據(jù)包
System.out.println(“非確認(rèn)接收成功信號(hào),正在重發(fā)數(shù)據(jù)包...“);
dpk.setData(buf?0?readSize);
dsk.send(dpk);
sendCount++;
lostCount++;
}?else?{
//?確認(rèn)接收成功,清空緩沖區(qū)
receiveBuf?=?new?byte[1024];
break;
}
}?catch?(SocketTimeoutException?e)?{
//?接收超時(shí)則重發(fā)數(shù)據(jù)包
System.out.println(“等待超時(shí),正在重發(fā)數(shù)據(jù)包...“);
dpk.setData(buf?0?readSize);
dsk.send(dpk);
sendCount++;
lostCount++;
}

}
}

//?所有數(shù)據(jù)發(fā)送成功后向接收端發(fā)出信號(hào)
System.out.println(“client?send?exit?message?....“);
dpk.setData(UDPUtils.exitData?0?UDPUtils.exitData.length);
dsk.send(dpk);
dpk.setData(receiveBuf?0?receiveBuf.length);
int?count?=?0;
while?(count? try?{
dsk.receive(dpk);
//?若沒(méi)收到接收端的確認(rèn)信息則重發(fā)信號(hào)
if?(!UDPUtils.isEqualsByteArray(UDPUtils.exitData
receiveBuf?dpk.getLength()))?{
System.out.println(“client?Resend?exit?message?....“);
dsk.send(dpk);
count++;
}?else?{
//?確認(rèn)接收成功,清空緩沖區(qū)
receiveBuf?=?new?byte[1024];
break;
}
}?catch?(SocketTimeoutException?e)?{
//?如果接收超時(shí)則重發(fā)信號(hào)
System.out.println(“client?Resend?exit?message?....“);
dsk.send(dpk);
count++;
}

}
}?catch?(Exception?e)?{
e.printStackTrace();
}?finall

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件????????301??2015-04-30?15:23??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\.classpath

?????文件????????380??2015-04-30?15:23??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\.project

?????文件????????598??2015-04-30?15:23??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\.settings\org.eclipse.jdt.core.prefs

?????文件???????3487??2015-06-04?16:11??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\udp\UDPClient.class

?????文件???????2624??2015-06-04?16:26??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\udp\UDPServer.class

?????文件???????1480??2015-05-29?09:42??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\util\UDPUtils.class

?????文件???????1633??2015-06-03?11:59??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\view\Mainframe$jb1ActionListener.class

?????文件???????2402??2015-06-03?11:59??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\view\Mainframe.class

?????文件???????3895??2015-06-04?16:11??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\udp\UDPClient.java

?????文件???????2372??2015-06-04?16:26??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\udp\UDPServer.java

?????文件???????1727??2015-05-29?09:42??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\util\UDPUtils.java

?????文件???????2169??2015-06-03?11:59??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\view\Mainframe.java

?????文件??????65513??2016-01-01?15:52??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\UDP收發(fā)數(shù)據(jù)包.docx

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\udp

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\util

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq\view

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\udp

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\util

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq\view

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com\ydq

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com\ydq

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin\com

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src\com

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\.settings

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\bin

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp\src

?????目錄??????????0??2015-06-04?18:24??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序\udp

?????目錄??????????0??2016-01-01?15:53??基于UDP協(xié)議的數(shù)據(jù)包收發(fā)程序

-----------?---------??----------?-----??----

????????????????88581????????????????????28

............此處省略1個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源