在TCP中實現一個客戶發送多條信息

<code>package cn.jd.chat01;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

/*
* 在線聊天室:客戶端
* 目標:實現一個客戶可以正常收發多條信息
*/
public class MultiClient {
\t\tpublic static void main(String[] args) throws UnknownHostException, IOException {
\t\t\tSystem.out.println("------client----------");
\t\t\t//1.使用Socket創建客戶端(這裡實際上就是和服務器建立連接)
\t\t\tSocket client=new Socket("localhost",8888);
\t\t\t//2.客戶端發送消息
\t\t\tBufferedReader console=new BufferedReader(new InputStreamReader(System.in));
\t\t\tDataOutputStream dos=new DataOutputStream(client.getOutputStream());
\t\t\tDataInputStream dis=new DataInputStream(client.getInputStream());
\t\t\tboolean isRunning=true;
\t\t\twhile(isRunning) {
\t\t\t\tString msg=console.readLine();
\t\t\t\t//3.發送消息\t
\t\t\t\tdos.writeUTF(msg);
\t\t\t\tdos.flush();
\t\t\t\t//4.獲取消息
\t\t\t\tmsg=dis.readUTF();//接收數據
\t\t\t\tSystem.out.println(msg);
\t\t\t}
\t\t\t//5.釋放資源
\t\t\tdos.close();
\t\t\tdis.close();
\t\t\tclient.close();
\t\t}
}
/<code>
<code>package cn.jd.chat01;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/*
* 在線聊天室:服務端
* 目標:實現一個客戶可以正常收發多條信息
*/
public class MultiChat {
\tpublic static void main(String[] args) throws IOException {
\t\tSystem.out.println("------server----------");
\t\t//1.指定端口:使用ServerSocket創建服務器
\t\tServerSocket server=new ServerSocket(8888);
\t\t//2.阻塞式等待連接accept
\t\tSocket client=server.accept();//一次accept就是一個連接
\t\tSystem.out.println("一個客戶端建立了連接");
\t\tDataInputStream dis=new DataInputStream(client.getInputStream());
\t\tDataOutputStream dos=new DataOutputStream(client.getOutputStream());
\t\tboolean isRunning=true;
\t\twhile(isRunning) {
\t\t\t//3.接收信息
\t\t\tString msg=dis.readUTF();//接收數據
\t\t\t//4.返回消息
\t\t\tdos.writeUTF(msg);
\t\t\tdos.flush();
\t\t}
\t\t
\t\t//5.釋放資源
\t\tdos.close();
\t\tdis.close();
\t\tclient.close();
\t\t
\t}
}
/<code>


分享到:


相關文章: