2021手机qq创建讨论组 qq如何创建多人聊天不是群聊( 三 )


if (!msg.equals(“”)) {
System.out.println(msg);
}
}
}
// 释放资源
private void release() {
this.isRunning = false;
Util.close(dis, client);
}
}
(由于从JDK中复制过来的代码格式会被平台调整,所以这里照齐上可能不太好看 。)
然后就是发送类了,发送跟接收差不多,基本思路是一样的
package com.TCP;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class Send implements Runnable {
private BufferedReader console;
private DataOutputStream dos;
private Socket client;
private boolean isRunning;
// 这里用到了名字,就是知道是谁谁发的信息
public Send(Socket client, String name) {
console = new BufferedReader(new InputStreamReader(System.in));
this.client = client;
try {
dos = new DataOutputStream(client.getOutputStream());
this.isRunning = true;
send(name);
} catch (IOException e) {
release();
}
}
// 这里是重写了run方法
@Override
public void run() {
while (isRunning) {
String msg = getStrFromConsole();
if (!msg.equals(“”)) {
send(msg);
}
}
}
// 这里是发送消息
private void send(String msg) {
try {
dos.writeUTF(msg);
dos.flush();
} catch (IOException e) {
release();
}
}
// 这里是获取控制台输入的信息
private String getStrFromConsole() {
String msg = “”;
try {
msg = console.readLine();
} catch (IOException e) {
release();
}
return msg;
}
// 释放资源
private void release() {
this.isRunning = false;
Util.close(dos, client);
}
}
由于从JDK中复制过来的代码格式会被平台调整,所以这里照齐上可能不太好看 。
Util工具类这个就是Util类了,这个类就是实现了释放资源 。
package com.TCP;
import java.io.Closeable;
/**
* 工具类
*
* @author 11852
*
*/
public class Util {
// 释放资源
public static void close(Closeable… targets) {
for (Closeable target : targets) {
try {
if (target != null) {
target.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: