freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

最新基于java局域網(wǎng)聊天程序設(shè)計與實(shí)現(xiàn)附源代碼-資料下載頁

2025-06-19 13:32本頁面
  

【正文】 e)。//設(shè)置是否可以調(diào)整窗口大小 //(3)。 } //初始化UDP協(xié)議端口信息 //首先向已在線的程序發(fā)送本機(jī)的IP以及請求響應(yīng)并對相應(yīng)的組播端進(jìn)行監(jiān)聽 public void JoinGroup(){ try { group=()。 //初始化廣播聊天信息組 groupC=()。//初始化登錄信息組 socket=new DatagramSocket()。 byte notify[]=new byte[100]。 byte nametag[]=new byte[20]。 nametag=()。 //發(fā)送一個登錄信息給已登錄的用戶,通知他們本程序上線。 //包的數(shù)據(jù)結(jié)構(gòu)為:判斷位+用戶名+IP地扯+用戶名長度 notify=new String(C+name +().getHostAddress()+()).getBytes()。 packet=new DatagramPacket(notify,groupC,CATCH_PORT)。 (packet)。 socketC=new MulticastSocket(CATCH_PORT)。 (groupC)。 Catcher catcher=new Catcher(socketC,this,name,userinfo)。 CheckIn login=new CheckIn(this,userinfo)。 } catch (Exception e) { ()。 } } public void groupListener(){ try { socketr=new MulticastSocket(DEFAULT_PORT)。 (group)。 } catch (IOException e) { ()。 } listener=new Listener(socketr,this)。 } public void TCPListener(){ TCPConnect tcp=new TCPConnect(TCP_PORT,name,this)。 } public void processMsg(String str){ (str)。 (()1)。 } public void processFriend(String str){ (str)。 }}3,Catcher用來對登錄信息的監(jiān)聽。具體的源碼如下:package javaqq。import .*。import .*。import .*。public class Catcher extends Thread { MulticastSocket Csocket。 Socket CheckSocket。 StateFrame sf。 InetAddress Cgroup。 DatagramPacket packet。 DatagramSocket socket。 String tag。 int i=0,k。 BufferedReader in。 PrintWriter out。 UserInfo[] userinfo。 public final static int CATCH_PORT=7322。 public final static int CHECK_PORT=5001。 public Catcher(MulticastSocket csocket, StateFrame sf, String tag, UserInfo[] userinfo) { Csocket = csocket。 = sf。 = tag。 = userinfo。 try { Cgroup=()。 } catch (UnknownHostException e) { ()。 } start()。 } //實(shí)現(xiàn)對組播端口的監(jiān)聽,并作出反映 public void run(){ try { socket=new DatagramSocket()。 while(true){ byte[] Rdata=new byte[256]。 packet=new DatagramPacket(Rdata,)。 (packet)。//等待接受數(shù)據(jù)包 //count記錄了數(shù)據(jù)包的最后一位數(shù),也就是記錄了用戶名的長度。 String count=new String(()).substring(()1,())。 int num=(count)。 //check為數(shù)據(jù)包的IP地址 String check=new String(()).substring(1+num,()1)。 String judge=new String(()).substring(0,1)。 String usertag=new String (()).substring(1,num+1)。 //judge為“C”時反送一個含有對方用戶名以及本機(jī)的IP的數(shù)據(jù)包到組播組 if((C)){ i=()。 processMsg(usertag)。 userinfo[i]=new UserInfo(usertag,check)。 ring()。 Connect(check)。 } if((D)){ while(userinfo[i]!=null){ String l=userinfo[i].getName()。 if((usertag)){ k=i。 while(userinfo[k]!=null){ userinfo[k]=userinfo[k+1]。 k++。 } break。 } } try { removeMsg(usertag)。 } catch (Exception n) { try { removeMsg(usertag)。 } catch (Exception n2) {} } } } } catch (Exception e) { ()。 } } //Connect()方法實(shí)現(xiàn)了對對方回應(yīng)本機(jī)信息的過程, //其中第一以及最后一個為無用信息,在接受方被吸收掉 public void Connect(String check){ try { CheckSocket=new Socket(check,CHECK_PORT)。 in=new BufferedReader(new InputStreamReader(()))。 out=new PrintWriter(())。 ()。 ()。 (tag)。 ()。 (().getHostAddress())。 ()。 ()。 ()。 } catch (Exception e) { try { ()。 ()。 ()。 } catch (Exception e1) { ()。 } ()。 } finally{ try { ()。 ()。 ()。 } catch (Exception e1) { ()。 } } } public void ring(){ FileInputStream file。 try { file=new FileInputStream(\\sound\\)。 AudioStream as=new AudioStream(file)。 (as)。 } catch (Exception e) { ()。 } } public void processMsg(String str){ (str)。 } public void removeMsg(String str){ (str)。 } }4,Listener 用來對群消息的監(jiān)聽及處理。具體的源碼如下:package javaqq。import 。import 。import 。import .*。import 。import 。public class Listener extends Thread { MulticastSocket MSocket。 DatagramPacket packet。 StateFrame SF。 public Listener(MulticastSocket socket, StateFrame sf) { MSocket = socket。 SF = sf。 ()。 } public void run(){ try { while(true){ byte[] Rdata=new byte[256]。 packet=new DatagramPacket(Rdata,)。 (packet)。 (new String(()))。 (true)。 ring()。 } } catch (IOException e) { ()。 } } public void ring(){ FileInputStream file。 try { file=new FileInputStream(\\sound\\)。 AudioStream as=new AudioStream(file)。 (as)。 } catch (FileNotFoundException e) { ()。 } catch (IOException e) { ()。 } }}5,CheckIn6,Logon5和6主要完成對群消息的處理。具體的源碼如下:package javaqq。import .*。import .*。public class CheckIn extends Thread{ ServerSocket Check。 Socket client。 UserInfo[] userinfo。 StateFrame sf。 public final static int CHECK_PORT=5001。 public CheckIn(StateFrame sf,UserInfo[]userinfo){ =sf。 =userinfo。 ()。 } //對回應(yīng)信息的端口的監(jiān)聽,一旦收到回應(yīng)信息則開啟一個新線程對其進(jìn)行信息的接收 public void run(){ try { Check=new ServerSocket(CHECK_PORT)。 } catch (IOException e) { ()。 } try { while(true){ client=()。 Logon ll=new Logon(sf,client,userinfo)。 ()。 } } catch (IOException e) { ()。 } }}package javaqq。import .*。import .*。public class Logon extends Thread{ StateFrame sf。 BufferedReader in。 PrintWriter out。 Socket client。 UserInfo[] userinfo。 int k。 String name,ip。 public Logon(StateFrame sf, Socket client, UserInfo[] userinfo) { = sf。 = client。 = userinfo。 try { in=new BufferedReader(new InputStreamReader(()))。 out=new PrintWriter(())。 (連接成功)。 } catch (Exception e) { ()。 } } //run()方法實(shí)現(xiàn)對回應(yīng)的TCP連接的信息的接收,并且完成對UserInfo信息的保存 public void run(){ String msg=null。 try{ //msg=receiveMsg()。 msg=receiveMsg()。 name=msg。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1