91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-25
  • 語言: 其他
  • 標(biāo)簽: socket??

資源簡介

沒有可視化窗口,基于控制臺輸入的的聊天室,使用socket套接字和多線程完成在線聊天功能,支持私聊和群聊,功能簡單請見諒。

資源截圖

代碼片段和文件信息

package?jdk.java.net.socket.chat;

import?java.io.BufferedReader;
import?java.io.BufferedWriter;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.io.OutputStreamWriter;
import?java.io.UnsupportedEncodingException;
import?java.net.Socket;
/**
?*?
?*?客戶端思路:
?*?1.客戶端與服務(wù)端建立連接
?*? ?1)首先需要注冊才能建立聊天功能
?*?
?*?2.需要一個數(shù)據(jù)發(fā)送線程和數(shù)據(jù)接收線程
?*???1)數(shù)據(jù)發(fā)送線程監(jiān)控控制臺輸入
?*???2)數(shù)據(jù)接收線程用戶接收其它用戶和服務(wù)端發(fā)送過來的消息
?*?
?*?@author?ni.tf
?*?2017-9-5
?*/
public?class?ClientChat?{

/**
?*?同意字符集
?*/
public?static?final?String?CHARSET?=?“UTF-8“;

/**
?*?運行狀態(tài)
?*/
public?static?boolean?isRunning?=?true;

private?BufferedWriter?writer;
private?BufferedReader?reader;
private?BufferedReader?in;

private?Socket?socket;

/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
new?ClientChat().startup();
}


public?ClientChat()?{
try?{
socket?=?new?Socket(“127.0.0.1“?8088);
writer?=?new?BufferedWriter(new?OutputStreamWriter(
socket.getOutputStream()?CHARSET));

reader?=?new?BufferedReader(new?InputStreamReader(
socket.getInputStream()?CHARSET));

in?=?new?BufferedReader(new?InputStreamReader(System.in?CHARSET));

}?catch?(UnsupportedEncodingException?e)?{
isRunning?=?false;
e.printStackTrace();
SocketUtil.close(writer?reader?in);
}?catch?(IOException?e)?{
isRunning?=?false;
e.printStackTrace();
SocketUtil.close(writer?reader?in);
}
}

/**
?*?啟動數(shù)據(jù)發(fā)送和接收線程
?*/
public?void?startup(){
Sender?sender?=?new?Sender();
new?Thread(sender).start();

Receiver?receiver?=?new?Receiver();
new?Thread(receiver).start();
}

/**
?*?發(fā)送線程
?*?1.獲取用戶控制臺輸入信息
?*?2.發(fā)送信息給服務(wù)端
?*?@author?ni.tf
?*?2017-9-1
?*/
class?Sender?implements?Runnable?{
@Override
public?void?run()?{
while(isRunning){
try?{
String?info?=?in.readLine();
if(info?!=?null?&&?!““.equals(info)){
writer.write(info);
writer.newLine();
writer.flush();
}
}?catch?(IOException?e)?{
e.printStackTrace();
isRunning?=?false;
e.printStackTrace();
SocketUtil.close(reader?writer);
}
}
}
}

/**
?*?接收線程
?*?@author?ni.tf
?*?2017-9-1
?*/
class?Receiver?implements?Runnable?{
@Override
public?void?run()?{
while(isRunning){
try?{
String?info?=?reader.readLine();
System.out.println(info);
}?catch?(IOException?e)?{
e.printStackTrace();
isRunning?=?false;
e.printStackTrace();
SocketUtil.close(reader);
}
}
}
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2894??2017-09-05?15:27??chat\ClientChat.java
?????文件????????7290??2017-09-05?15:22??chat\ServerChat.java
?????文件?????????395??2017-09-01?17:04??chat\SocketUtil.java
?????目錄???????????0??2017-09-05?15:47??chat\

評論

共有 條評論