關於Socket編寫簡單聊天工具的總結(原創

2022-03-19 20:49:10 字數 1639 閱讀 3651

這段時間再看socket程式設計,雖然現在是剛剛接觸,但是還是忍不住想寫一篇總結,來激勵自己努力學習,寫的不好的地方,還請大家指教啊!

下面針對乙個簡單的傳送訊息和檔案的程式說說吧。   首先是伺服器需要準備二個socket和二個thread如下:

//和客戶機進行通訊

private socket sckcommit;

//監聽客戶機

private socket scklisten;

private thread thdlisten;

private thread thdcommit;

對客戶機的監聽和通訊放在二個單獨的執行緒中,服務端的簡單介面如下:

點選啟動按鈕時呼叫下面的函式:

#region 初始化監聽

//初始化監聽

public

void

listen()

catch

(exception ex)

} #endregion

#region 在單獨的執行緒裡監聽埠

public

void

watch()

catch

(exception ex)}}

#endregion

啟動伺服器進行監聽,程式執行到sckcommit=scklisten.accept();

時,由於accept();

阻塞執行等待客戶的連線,然後開始啟動接受訊息的執行緒。

public

void

receivemsg()

catch

(exception ex)}}

對於客戶端,首先需要主動與伺服器進行連線,客戶端截圖如下:

點選連線時,呼叫下面的函式:

public

void

connnetion()

catch

(exception ex)

}public

void

receivemsg()

else

if (bytemsg[0] == 1

)

//}}

else

}catch

(exception ex)}}

這樣就能接受伺服器發來的資料了,為了節省篇幅,其他重複性的**就不粘上來了。

還需要注意的是,如何區別傳送的是檔案還是訊息還是視窗抖動,我的做法就是在傳送的位元組陣列的第一位做乙個標記位,

如果是0怎傳送的是字串,如果是1則傳送的是檔案,如果是2則傳送的是視窗抖動。

對於檔案和字串上面的**都有,視窗抖動現在還沒實現,我的思路是用乙個for迴圈,迴圈10-30次,每一次都用隨機數生成x,y二個數然後加在

視窗的現在的座標上,就能實現視窗的抖動了。

哈哈,暫時先總結到這,現在去吃飯,回來實現視窗的抖動,加油!!!!

vs2010編寫的簡單socket聊天

伺服器端 server.cpp 定義控制台應用程式的入口點。mfc用來了解win的作業系統的核心 include stdafx.h include 引入標頭檔案 pragma comment lib,ws2 32.lib 載入動態庫 int tmain int argc,tchar ar print...

簡單的socket聊天

直接上 public class server public void init catch exception e 開啟乙個新的執行緒處理連線 private class handlerthread implements runnable public void run catch excepti...

簡單的socket聊天程式

伺服器 include include include include include include include include define port 18888 埠 define buflen 1024 快取區大小 define listennum 20 socket最大監聽數 int m...