第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

基于UDP的服務(wù)器實(shí)現(xiàn)多線程時(shí),第一個(gè)客戶運(yùn)行端不能在服務(wù)器登陸得到響應(yīng),第二個(gè)實(shí)行客戶端,第一次執(zhí)行已停止的客戶端才能接受服務(wù)器的響應(yīng),服務(wù)器也才會(huì)得到第一個(gè)客戶端的信息

import?java.io.IOException;
import?java.net.DatagramPacket;
import?java.net.DatagramSocket;
import?java.net.InetAddress;
import?java.net.SocketException;
import?java.net.UnknownHostException;


public?class?UDPCilent?{

	public?static?void?main(String[]?args)?{
		try?{
			/*
			?*?向服務(wù)器端發(fā)送信息
			?*/
			//定義服務(wù)器ip,端口,信息
			InetAddress?address=InetAddress.getByName("localhost");
			int?port=8000;
			byte?[]data="用戶名:kuerban;密碼:668858".getBytes();
			//建立DatagramPacket
			DatagramPacket?packet=new?DatagramPacket(data,?0,?data.length,?address,?port);
			//建立DatagramSocket
			DatagramSocket?socket=new?DatagramSocket();
			socket.send(packet);
			
			/*
			?*?獲取服務(wù)端發(fā)送信息
			?*/
			//建立數(shù)據(jù)包接受信息
			byte?bytes[]=new?byte[1024];
			DatagramPacket?packet1=new?DatagramPacket(bytes,?bytes.length);
			socket.receive(packet1);
			String?info=new?String(bytes,?0,?packet1.getLength());
			System.out.println(info);
			socket.close();
		}?catch?(UnknownHostException?|?SocketException?e)?{
			e.printStackTrace();
		}?catch?(IOException?e)?{			
			e.printStackTrace();
		}
	}
	

}


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

/*
?*?服務(wù)器端,基于UDP實(shí)現(xiàn)用戶登錄
?*/



public?class?UDPServer?{

	public?static?void?main(String[]?args)?{
		try?{
		/*
		?*?接受信息
		?*/
			
			//建立一個(gè)DatagramSocket,指定端口
			DatagramSocket?socket=new?DatagramSocket(8000);
			byte?[]bytes=new?byte[1024];
			//建立一個(gè)Datagrampacket,以接受數(shù)據(jù)
			DatagramPacket?packet=new?DatagramPacket(bytes,?bytes.length);
		/*
		?*?發(fā)送數(shù)據(jù)
		?*/		
			//啟動(dòng)服務(wù)器
			System.out.println("服務(wù)器已啟動(dòng)");
			while(true){
			????socket.receive(packet);
			????//建立客戶端ip,端口
				InetAddress?address=packet.getAddress();
				int?port=packet.getPort();
				UDPthread?thread=new?UDPthread(socket,packet,address,port,bytes);
				thread.start();
			}
			
		}?catch?(IOException?e)?{
			e.printStackTrace();
		}
	}

}



import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;



public class UDPthread extends Thread{

DatagramPacket packet=null;

InetAddress address=null;

byte bytes[];

int port=0;

DatagramSocket socket=null;

public UDPthread(DatagramSocket socket,DatagramPacket packet,InetAddress address,int port,byte[] bytes) {

this.packet =packet;

this.address=address;

this.port=port;

this.socket=socket;

this.bytes=bytes;

}

public void run(){

//讀取信息,輸出信息

String info=new String(bytes, 0, packet.getLength());

System.out.println(info);

//建立信息,并發(fā)送

byte bytes1[]="登陸成功".getBytes();

DatagramPacket packet1=new DatagramPacket(bytes1, 0, bytes1.length,address,port);

//向客戶端響應(yīng)

try {

socket.send(packet1);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


正在回答

5 回答

DatagramPacket packet1=new DatagramPacket(bytes1, 0, bytes1.length,address,port);這里只有4個(gè)參數(shù)吧?第二個(gè)參數(shù)0是什么作用?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Mardanof2 提問者

非常感謝!
2016-04-29 回復(fù) 有任何疑惑可以回復(fù)我~
?????//啟動(dòng)服務(wù)器???????????
??System.out.println("服務(wù)器已啟動(dòng)");????????????
??while(true){??
??????packet?=?new?DatagramPacket(bytes,?bytes.length);??????????????
??????socket.receive(packet);????????????????
??????//建立客戶端ip,端口????????????????
??????InetAddress?address=packet.getAddress();????????????????
??????int?port=packet.getPort();????????????????
??????UDPthread?thread=new?UDPthread(socket,packet,address,port,bytes);???????????????
??????thread.start();???????????
????}


0 回復(fù) 有任何疑惑可以回復(fù)我~
?//啟動(dòng)服務(wù)器????????????System.out.println("服務(wù)器已啟動(dòng)");????????????while(true){????????????????socket.receive(packet);????????????????//建立客戶端ip,端口????????????????InetAddress?address=packet.getAddress();????????????????int?port=packet.getPort();????????????????UDPthread?thread=new?UDPthread(socket,packet,address,port,bytes);????????????????thread.start();????????????}

這里要每次new一個(gè)新的packet,即

?//啟動(dòng)服務(wù)器????????????System.out.println("服務(wù)器已啟動(dòng)");????????????while(true){???????????????packet?=?new?DatagramPacket(bytes,?bytes.length);?socket.receive(packet);????????????????//建立客戶端ip,端口????????????????InetAddress?address=packet.getAddress();????????????????int?port=packet.getPort();????????????????UDPthread?thread=new?UDPthread(socket,packet,address,port,bytes);????????????????thread.start();????????????}


0 回復(fù) 有任何疑惑可以回復(fù)我~

兄弟,我也是這個(gè)問題,你是怎么解決的?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

齾靊

看下面
2018-05-31 回復(fù) 有任何疑惑可以回復(fù)我~
#2

亞歷山魈 回復(fù) 齾靊

原因是什么,百思不得其解!!求告知
2018-09-17 回復(fù) 有任何疑惑可以回復(fù)我~

http://img1.sycdn.imooc.com//571f8780000128f205060023.jpg0是offset是從第幾個(gè)byte開始的

但你有沒有看出我提出的問題

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

基于UDP的服務(wù)器實(shí)現(xiàn)多線程時(shí),第一個(gè)客戶運(yùn)行端不能在服務(wù)器登陸得到響應(yīng),第二個(gè)實(shí)行客戶端,第一次執(zhí)行已停止的客戶端才能接受服務(wù)器的響應(yīng),服務(wù)器也才會(huì)得到第一個(gè)客戶端的信息

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)