怎么在Java中使用Socket編寫一個(gè)聊天程序?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)寧城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
服務(wù)器端程序Server
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class TestTcpServer { public static void main(String[] args) { ServerSocket ss = null; BufferedReader in = null; try { ss = new ServerSocket(8888); System.out.println("服務(wù)器啟動"); Socket socket = ss.accept(); System.out.println("連接建立"); System.out.println(socket.getInetAddress().getHostAddress()); //服務(wù)器接收客戶端發(fā)送的數(shù)據(jù) in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String clientContent = in.readLine(); System.out.println("接收客戶端消息: " +clientContent); } catch (IOException e) { e.printStackTrace(); } } }
客戶端程序Clinet
import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class TestTcpClient { public static void main(String[] args) { Socket socket = null; BufferedWriter out = null; //客戶端發(fā)送數(shù)據(jù),服務(wù)器端接收 try { socket = new Socket("127.0.0.1",8888); System.out.println("與服務(wù)器連接了"); Scanner sc = new Scanner(System.in); String content = sc.nextLine(); out = new BufferedWriter((new OutputStreamWriter(socket.getOutputStream()))); out.write(content); out.flush(); sc.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try { out.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
運(yùn)行樣例
注意要先起S端,否則:
好啦,先起S端:
然后S端就在等待,它“說話”也沒人理它:
接著起C端:
S端也會有響應(yīng):
然后C端發(fā)消息:
S端收到消息,就雙雙Over了:
看完上述內(nèi)容,你們掌握怎么在Java中使用Socket編寫一個(gè)聊天程序的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!