C TCP IP客戶端與服務端資料與檔案的傳輸

2021-09-10 05:18:31 字數 3220 閱讀 7941

用c#寫的 乙個簡單的tcp通訊,主要的功能有:

(1) 多個客戶端與伺服器間的資料交流

(2)可以實現**的功能

(3)客戶端與服務端可以進行檔案的傳輸

主要用到的知識: tcp裡的 socket 、多執行緒 thread

下面分別是服務端和客戶端的**:

服務端**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.net.sockets;

using system.net;

using system.threading;

using system.io;

namespace a

thread threadwatch = null; // 負責監聽客戶端連線請求的 執行緒;

socket socketwatch = null;

dictionarydict = new dictionary();

dictionarydictthread = new dictionary();

private void btnbeginlisten_click(object sender, eventargs e)

catch (socketexception se)

// 設定監聽佇列的長度;

socketwatch.listen(10);

// 建立負責監聽的執行緒;

threadwatch = new thread(watchconnecting);

threadwatch.isbackground = true;

threadwatch.start();

showmsg("伺服器啟動監聽成功!");

//}}

/// /// 監聽客戶端請求的方法;

///

void watchconnecting()

}void recmsg(object sokconnectionparn)

catch (socketexception se)

catch (exception e)

if (arrmsgrec[0] == 0) // 表示接收到的是資料;

if (arrmsgrec[0] == 1) // 表示接收到的是檔案;}}

}

}void showmsg(string str)

// 傳送訊息

private void btnsend_click(object sender, eventargs e)

else

}/// /// **訊息

///

///

/// 訊息

private void btnsendtoall_click(object sender, eventargs e)

showmsg(strmsg);

txtmsgsend.clear();

showmsg(" **完畢~~~");

}// 選擇要傳送的檔案

private void btnselectfile_click_1(object sender, eventargs e)

}// 檔案的傳送

private void btnsendfile_click_1(object sender, eventargs e)

else

else}}

txtselectfile.clear();

}}

}

客戶端**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.net;

using system.net.sockets;

using system.threading;

using system.io;

namespace b

thread threadclient = null; // 建立用於接收服務端訊息的 執行緒;

socket sockclient = null;

private void btnconnect_click(object sender, eventargs e)

catch (socketexception se)

showmsg("與伺服器連線成功!!!");

threadclient = new thread(recmsg);

threadclient.isbackground = true;

threadclient.start();

}void recmsg()

catch (socketexception se)

catch (exception e)

if (arrmsgrec[0] == 0) // 表示接收到的是訊息資料;

if (arrmsgrec[0] == 1) // 表示接收到的是檔案資料;}}

catch (exception aaa)}}

}void showmsg(string str)

// 傳送訊息;

private void btnsendmsg_click(object sender, eventargs e)

// 選擇要傳送的檔案;

private void btnselectfile_click(object sender, eventargs e)

}//向伺服器端傳送檔案

private void btnsendfile_click(object sender, eventargs e)

else

}

}}

C 服務端與客戶端

c 服務端與客戶端連線實現的由來 那麼既然乙個伺服器端口可以應對多個客戶端連線,那麼接下來我們就看一下,如何讓多個客戶端與服務端連線。如同我們上面所說的,乙個tcpclient就是乙個socket,所以我們只要建立多個tcpclient,然後再呼叫connect 方法就可以了 c 服務端與客戶端連線...

服務端與客戶端互動

搭建伺服器 伺服器端 using system.net.sockets using system.net using system.io using system.text namespace sockerservice endpoint point new ipendpoint ipaddress...

NodeJS TCP客戶端與服務端

server.js var net require net 載入網路模組 var clients 0 建立id來引用連線的每乙個客戶端 var server net.createserver function client client.write welcome client clientid 使...