vbnbsp 6 0編寫伺服器端和多個訪問伺服器端的客戶端要用那函式來編寫

時間 2021-05-06 01:47:46

1樓:招財tb棝

你好!可以利用visablebasic控制元件陣列的方式並利用監聽用的陣列元素(一般都是索引值「0」),來觸發connectrequest事件。接下來再利用判別控制元件陣列元素的連線狀態來進行遠端客戶端連線。

檢視原帖》

vb6.0寫一個伺服器給多個客戶端通訊的程式,我的**為什麼只能給一個客戶端傳送資訊,**有問題?

2樓:網海1書生

text1.text = intmax

你這行的實際意思究竟是把變數intmax的值在text1中顯示出來,還是把text1的值賦值給變數intmax?按照正常的理解,應該後一種才合理吧?那麼就應該這樣:

intmax = val(text1.text)

幫忙建立一個1.6.4的伺服器(包括服務端和客戶端)

3樓:匿名使用者

好的, lz,解答如下, (字數較多,可能需要多一點時間,請見諒) 想要自己建立伺服器的話,需要做好下面的幾手準備: ...

vb6.0+access利用winsock做伺服器端和客戶端的軟體

4樓:匿名使用者

自己定義一個結構體發位元組流過去不就可以了。建議把位元組流封包傳輸

如:第1個位元組 &hb1 表示包頭開始標誌

第2個位元組 &h01 表示傳送資料命令

第3-4個位元組 &h0005 表示資料長度為5個位元組

第5個位元組 &h00 具體的資料第1個位元組內容

第6個位元組 &h00 具體的資料第2個位元組內容

第7個位元組 &h00 具體的資料第3個位元組內容

第8個位元組 &h00 具體的資料第4個位元組內容

第9個位元組 &h00 具體的資料第5個位元組內容

第10個位元組 &hb5 從包頭開始逐個進行異或運算的「異或校檢碼」,校檢資料的完整性用

第11個位元組 &hb2 表示包尾

上面這個包主要由6個部分組成

1、包頭 用來進行包的初始化識別

2、命令 擴充套件包協議用,如傳輸語句、傳輸控制指令、移動記錄等

3、資料長度 我這裡的例子是用兩個位元組表示長度,即最多一個包傳輸65536個位元組的資料

4、資料區域 具體要傳輸的資料段落

5、異或校檢碼 為了檢測資料的完整性,也可以用crc16或crc32等演算法進行資料校檢

6、包尾 用來完整識別一個包內容的結束標誌

通過上面這個包結構,可以在資料包裡放置小於65536個位元組的內容進行傳輸

在處理傳輸資料時可以這麼做:

type sendreport

sr_head as byte ' 固定為 &hb1

sr_cmd as byte ' 命令

sr_size as integer ' 資料大小

sr_data() as byte ' 資料內容

sr_xor as byte ' 異或校檢碼

sr_end as byte ' 固定為 &hb2

end type

type sendrf

rs_type as integer ' 欄位型別

rs_namesize as integer ' 欄位名稱位元組數

rs_name() as byte ' 欄位名稱內容

rs_size as integer ' 欄位資料大小

rs_data() as byte ' 欄位資料內容

end type

type sendrs

rs_fcount as integer ' 欄位數量

rs_data() as sendrf ' 欄位資料

end type

...然後把資料集的資料賦值到上面的機構體裡,再把結構體的資料格式化到一個位元組陣列中,便可把這個位元組陣列傳送出去,接收端只要根據格式提取出相關資料到結構體,就可以實現資料的還原過程。在過程裡只要善用 copymemory api 就可以很容易實現這種過程的處理,如

dim sr as sendreport

dim sentbytes() as byte

dim i as long

redim sr.sr_data(4)

for i=0 to ubound(sr.sr_data)

sr.sr_xor = sr.sr_xor xor sr.sr_data(i)

next i

sr.sr_end = &hb2

redim sentbytes(10)

copymemory sentbytes(0),sr.sr_head,1

copymemory sentbytes(1),sr.sr_cmd,1

copymemory sentbytes(2),sr.sr_size,2

copymemory sentbytes(4),sr.sr_data(0),5

sentbytes(ubound(sentbytes)-1) = sr.sr_xor

sentbytes(ubound(sentbytes)) = sr.sr_end

winsock1.senddata sentbytes

當然上面只是封包的過程,沒有設定具體的資料集資料,不過原理也差不多,也就是讀寫sendrf和sendrs結構的問題。具體的自己做做看吧。

socket tcp伺服器連線多個客戶端,服務端接收資料時怎麼判斷是哪個客戶端發來的資料

5樓:匿名使用者

呼叫recv時 是有條件的,這個條件即有讀事件觸發,該讀事件觸發者即為與之通訊的socket,也即你所要的「判斷髮送方的socket」,順著這個道理就能找到對應關係了。

6樓:匿名使用者

wparam引數標識了已經發生了的網路事件的套接字。lparam引數的低字指定了已經發生的網路事件。

vc++6.0 用mfc 做客戶端和伺服器端的通訊程式,要求是可以全雙工(多執行緒),求源**和詳細的註釋,謝謝

7樓:龔煒林

**到處都是,我這裡有個,但是註釋不多,多看看應該能看懂的。

8樓:一霸一霸

有了以後 給大家免費共享一個吧