Java單線程程序?qū)崿F(xiàn)實(shí)現(xiàn)簡單聊天功能
信息發(fā)送
import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner; public class May { public static void main(String[] args) {// 單線程程序 try { ServerSocket socket = new ServerSocket(2233);//端口號(hào) Socket soc = socket.accept();// 讀取信息 BufferedReader br = new BufferedReader(new InputStreamReader(soc.getInputStream())); PrintWriter out = new PrintWriter(soc.getOutputStream()); while (true) {// 發(fā)送System.out.println('發(fā)送:');String msg = new Scanner(System.in).nextLine();//SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');out.println(String.format('[%s]:%srn', '服務(wù)器', msg));out.flush();// 接收System.out.println(br.readLine()); } } catch (IOException e) { e.printStackTrace(); } }}
接收信息并回復(fù)
import java.io.*;import java.net.Socket;import java.util.Scanner;public class Max { public static void main(String[] args) { try { Socket s = new Socket('localhost',2233);//鏈接端口號(hào) String sc = s.getInetAddress().getHostAddress();//獲取IP// 讀取信息 BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out = new PrintWriter(s.getOutputStream()); while (true) {// 接收System.out.println(br.readLine());// 發(fā)送System.out.println('發(fā)送:');String msg = new Scanner(System.in).nextLine();//SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');out.println(String.format('[%s]:%srn', sc, msg));out.flush(); } } catch (IOException e) { e.printStackTrace(); } }}
發(fā)送你好
接收你好并回復(fù)
[/code]
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Echarts通過dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖2. Laravel操作session和cookie的教程詳解3. css進(jìn)階學(xué)習(xí) 選擇符4. 阿里前端開發(fā)中的規(guī)范要求5. 解析原生JS getComputedStyle6. XML入門精解之結(jié)構(gòu)與語法7. XML入門的常見問題(一)8. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法9. html小技巧之td,div標(biāo)簽里內(nèi)容不換行10. PHP字符串前后字符或空格刪除方法介紹
