鍐欏湪鍓嶉潰
鍙兘璇村熀纭€涓嶇墷鍚э紝浠g爜閫昏緫涓€鍒嘜K锛屽氨鏄帴鏀朵笉鍒版湇鍔″櫒淇℃伅锛屽彂閫佹病闂銆? 鍥犱負鏈嶅姟鍣ㄤ笉鏄垜鑳芥帶鍒剁殑锛屽彧鑳藉湪瀹㈡埛绔兂鍔炴硶瑙e喅锛屽悗鏉ユ柇鐐圭煡閬撲簡
readLine()
闃誨鐨勬儏鍐碉紝澶ф棤璇憖锛岄樆濉炲ソ鏄ソ锛屼絾浣犺鎹㈣绗︼紝鎴戝摢鐭ラ亾鏈嶅姟鍣ㄧ粰鐨勬槸浠€涔堛€?
杩欓噷socket鐨勮繛鎺ヤ箣绫葷殑浠g爜寰堝锛屽氨涓嶉噸澶嶈創浜嗭紝鍙斁浜涜В鍐蟲柟妗堜緵鏈夊悓鏍烽棶棰樼殑鏈嬪弸鍙傝€?
瑙e喅鏂規涓€ 鍔犳崲琛岀
灏辨槸涓婇潰鎻愬埌鐨?code>readLine()瑕佹崲琛岀鎵嶇煡閬撲紶閫佸畬鎴愶紝鎵€浠ヨ繖涓彧鑳芥槸鏈嶅姟鍣ㄧ鍙戦€佹暟鎹粰瀹㈡埛绔椂锛岀粨灏句竴瀹氳鍔犱釜
\r
鎴?code>\n
鍙堟垨鑰呬嬌鐢?
println()
鍙戦€佹暟鎹? 濡傛灉鏈嶅姟鍣ㄥ鎴風閮芥槸浣犵淮鎶わ紝閭h繖涓В鍐蟲柟妗堟渶绠€鍗曢珮鏁堛€?
浠ヤ笅浠g爜褰撲釜鍙傝€冿紝m_clientSocket 鍗蟲槸鏈嶅姟绔€氫俊鐢⊿ocket锛岄潪杩炴帴鐢ㄧ殑ServerSocket
public void SendMessage(String msg) {
new Thread(new Runnable() {
@Override
public void run() {
try {
if (m_clientSocket.isConnected()) {
if (!m_clientSocket.isOutputShutdown()) {
PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(m_clientSocket.getOutputStream()), true);
printWriter.println(msg);
}
}
} catch (IOException e) {
log(e.getMessage());
}
}
}).start();
}
瑙e喅鏂規浜?浣跨敤Read() 鏂規硶
杩欓噷璁闆緱鏂闆紑绾跨▼鎴栫敤寮傛浠誨姟鎵ц鎺ユ敹鏁版嵁鐨勯€昏緫
private void WaitForData() {
FutureTask<Void> futureTask = new FutureTask<>(new Callable<Void>() {
@Override
public Void call() throws Exception {
try {
String charset = "GBK";
byte[] buffer = new byte[10240];
String msg;
int len;
InputStream inputStream = m_clientSocket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, charset));
while (true) {
if (!m_clientSocket.isInputShutdown()) {
len = inputStream.read(buffer);
if (len == -1) break;
msg = new String(buffer, 0, len, charset);
log(msg);
// 鎷垮埌浜嗘帴鏀跺埌鐨勬暟鎹甿sg鍚庨潰灏辨槸鑷繁鐨勫鐞嗛€昏緫浜嗭紝鏄墦鍗拌繕鏄叾浠栦簡
}
}
} catch (Exception e) {
log(e.getMessage());
}
return null;
}
});
new Thread(futureTask).start();
}
瑙e喅鏂規涓?DataInputStream
杩欑鏂規硶濂芥槸濂斤紝浣嗘病鏈夐樆濉炵瓑寰咃紝浼氫竴鐩村驚鐜€傦紙绐佺劧鍙戠幇闃誨涔熸槸濂戒笢瑗垮憖锛? 涓€骞惰創鍑烘潵渚涘弬鑰冨惂锛岀湅闇€瑕佺殑鏈嬪弸浣跨敤
private void WaitForData() {
FutureTask<Void> futureTask = new FutureTask<>(new Callable<Void>() {
@Override
public Void call() throws Exception {
int i = 0;
while (true) {
if (!client.isInputShutdown()) {
try {
DataInputStream inputStream = new DataInputStream(client.getInputStream());
byte[] buffer = new byte[inputStream.available()];
if(buffer.length != 0){
inputStream.read(buffer);
String msg = new String(buffer);
clientReceiveData.OnClientReceiveData(msg);
}
i++;
log(String.valueOf(i));
} catch (Exception ee) {
log(ee.getMessage());
}
}
}
}
});
new Thread(futureTask).start();
}