java 線程,socket 套接字,在線聊天(羣組方式)

可看可不看最好看看的套話

說是要總結最近所學,但是目前正在癡迷於套接字和聊天軟件的設計。還沒完全做好,先來寫寫想法。也分幾篇進行詳談吧。

首先先來講講套接字。說實話,我並不知道套接字的含義是啥,我也不知道爲啥取這個名字,這個定義就是服務器之間的連接對象,是TCP連接。我看來就像一座橋,負責傳遞信息。

話不多說,來看看服務器端套接字的構建。

ServerSocket server;
server = new ServerSocket(9527);

這是基本的構建,9527就是服務器端口,如果用自己電腦來做服務器,就是開放你電腦的端口,這個端口的作用相當於一個處理器的部分,來處理事務的。(到客戶端詳談)。

Socket socket=server.accept();

然後是.accept()方法,這個就是監聽連接端,如果有了連接端,就會返回Socket這個橋,以便處理服務器和該客戶端的交互信息。

InputStream in=socket.getInputStream();
InputStreamReader inr=new InputStreamReader(in);
BufferedReader bf=new BufferedReader(inr);
String str=bf.readLine();

這就是哦那個過服務器創建的輸入流,這個可以向服務器發送消息,然後通過bf.redLine()獲取這個消息。輸出流,及output那個我就不寫了,原理都是一樣通過,socket來得到輸出流,服務端給客戶端發送信息。

下面是客戶端的創建

Socket sk=new Socket("127.0.0.1",9527);

這是客戶端的創建套接字,在此“127.0.0.1”大家都不陌生,本機ip,別人無法連接。這個想要別人連接你的服務端,改成本機的外網ip即可。本機的外網ip我就不說了,自行百度,一大堆。這裏9527就是你服務器創建的端口,我相信大家看到這就懂了。

在此吧,這裏如果連接,上面服務器的accept()這個函數就會執行進行連接。可以說吧這倆是一套的。

OutputStream op=sk.getOutputStream();
op.write("第一次訪問服務器\n".getBytes("utf-8"));

然後,剛纔說了,這次的代碼可以通過客戶端給服務器發送消息。在這創建一個輸出流,我這裏是op,然後op.write(),寫入,“utf-8”看看就知道是編碼格式了吧,這時候你就可以往上看bf.readLine()了。此處註明一點,加上“\n”的原因是bf.readLine();這裏讀取一行(恍然大悟)。所以像聊天記錄一樣輸出換行你們還需要在讀取到消息後在換行。這裏別告訴我你們不懂"\n"是換行的意思啊"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章