xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1.43MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-27
  • 語言: Java
  • 標(biāo)簽: java??即時(shí)通訊??

資源簡(jiǎn)介

本程序使用的是 TCP 協(xié)議實(shí)現(xiàn)的即時(shí)通信軟件,程序是基于 Java 語言開發(fā)的,主要用到的技術(shù)有:
Socket 編程
自定義協(xié)議
如果使用普通的方法來標(biāo)記一條消息的結(jié)束,如換行符,那么程序就不易擴(kuò)展,只能發(fā)送純文本消息,所以
需要自己定義一種消息的格式,并且我們還需要提供發(fā)送消息與解析消息的方法。
服務(wù)器端創(chuàng)建一個(gè) ServerSocket,循環(huán)等待客戶端的連接,每當(dāng)有客戶端連接,就獲取到客戶端的 Socket 對(duì)象,
并將該對(duì)象交付給一個(gè)服務(wù)器端線程處理,服務(wù)器端線程會(huì)不斷從 Socket 的輸入流中解析出消息類型、長(zhǎng)度及消
息內(nèi)容,然后根據(jù)類型執(zhí)行不同的操作。 客戶端與服務(wù)器建立連接,同時(shí)開啟一個(gè)客戶端線程接收服務(wù)器端發(fā)送的
消息,客戶端登錄是向服務(wù)器發(fā)送一條登錄命令,客戶端向服務(wù)器發(fā)送一條消息首先需要包裝成定義的消息格式,
然后再發(fā)送給服務(wù)器。 不管是發(fā)送消息還是發(fā)送命令其實(shí)本質(zhì)都是一條消息,向服務(wù)器發(fā)送的消息都必須按照定義
的格式來

資源截圖

代碼片段和文件信息

package?client;

import?java.io.DataOutputStream;
import?java.io.IOException;
import?java.net.Socket;
import?java.net.UnknownHostException;

import?myutil.Protocol;

/**
?*?封裝客戶端與服務(wù)器通信的細(xì)節(jié)
?*/
public?class?Client?{

//套接字
Socket?socket;

//輸出流
DataOutputStream?dos?=?null;

/**
?*?連接服務(wù)器并初始化輸出流
?*?開啟客戶端線程負(fù)責(zé)消息的接收
?*?@param?address?服務(wù)器IP地址
?*?@param?port?服務(wù)器端口號(hào)
?*/
public?void?conn(String?address?int?port)?{
try?{
socket?=?new?Socket(address?port);
dos?=?new?DataOutputStream(socket.getOutputStream());
new?ClientThread(socket).start();
}?catch?(UnknownHostException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}

/**
?*?登錄
?*?@param?user?用戶昵稱
?*/
public?void?load(String?user)?{
Protocol.send(Protocol.TYPE_LOADuser.getBytes()?dos);
}

/**
?*?發(fā)送消息
?*?@param?msg?消息內(nèi)容
?*/
public?void?sendMsg(String?msg)?{
Protocol.send(Protocol.TYPE_TEXT?msg.getBytes()?dos);
}

/**
?*?退出
?*/
public?void?logout(){
Protocol.send(Protocol.TYPE_LOGOUT?“l(fā)ogout“.getBytes()?dos);
}

/**
?*?關(guān)閉客戶端,釋放掉資源
?*/
public?void?close()?{
//?向服務(wù)器發(fā)送退出命令
Protocol.send(Protocol.TYPE_LOGOUT?new?String(“l(fā)ogout“).getBytes()?dos);
//?關(guān)閉資源
try?{
if?(dos?!=?null)
dos.close();
if?(socket?!=?null)
socket.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-30?18:26??chat\
?????文件?????????295??2018-06-29?20:01??chat\.classpath
?????文件?????????363??2018-06-29?20:01??chat\.project
?????目錄???????????0??2018-10-30?18:26??chat\.settings\
?????文件?????????587??2018-06-29?20:01??chat\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2018-10-30?18:26??chat\src\
?????目錄???????????0??2018-10-30?18:26??chat\src\Server\
?????文件?????????665??2018-06-29?20:01??chat\src\Server\Server.java
?????文件????????2597??2018-06-29?20:01??chat\src\Server\ServerThread.java
?????目錄???????????0??2018-10-30?18:26??chat\src\client\
?????文件????????1460??2018-06-29?20:01??chat\src\client\Client.java
?????文件????????1461??2018-06-29?20:01??chat\src\client\ClientThread.java
?????文件????????4691??2018-06-29?20:01??chat\src\client\View.java
?????目錄???????????0??2018-10-30?18:26??chat\src\myutil\
?????文件????????1361??2018-06-29?20:01??chat\src\myutil\Protocol.java
?????文件?????????755??2018-06-29?20:01??chat\src\myutil\Result.java
?????文件???????11263??2018-06-29?20:01??client.jar
?????文件????????5124??2018-06-29?20:01??server.jar
?????文件?????1586640??2018-10-31?18:32??基于JAVA的即時(shí)通信軟件.pdf
?????文件???????33432??2018-06-29?20:01??程序說明文檔.docx

評(píng)論

共有 條評(píng)論