用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 使...