資源簡介
C# Sockets 通訊應用 小小的貢獻啦,能給到你幫助

代碼片段和文件信息
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.IO;
using?System.Threading;
namespace?AsyncTcpServer
{
????public?partial?class?FormServer?:?Form
????{
????????private?bool?isExit?=?false;
????????//保存連接的所有客戶端?
????????System.Collections.ArrayList?clientList?=?new?System.Collections.ArrayList();
????????TcpListener?listener;
????????//用于線程間互操作?
????????private?delegate?void?SetListBoxCallback(string?str);
????????private?SetListBoxCallback?setListBoxCallback;
????????private?delegate?void?SetRichTextBoxCallback(string?str);
????????private?SetRichTextBoxCallback?setRichTextBoxCallback;
????????private?delegate?void?SetComboBoxCallback(string?str);
????????private?SetComboBoxCallback?setComboBoxCallback;
????????private?delegate?void?RemoveComboBoxItemsCallback(ReadWriteobject?readWriteobject);
????????private?RemoveComboBoxItemsCallback?removeComboBoxItemsCallback;
????????//用于線程同步,初始狀態設為非終止狀態,使用手動重置方式?
????????private?EventWaitHandle?allDone?=
???????????????new?EventWaitHandle(false?EventResetMode.ManualReset);?
????????public?FormServer()
????????{
????????????InitializeComponent();
????????????listBoxStatus.HorizontalScrollbar?=?true;
????????????setListBoxCallback?=?new?SetListBoxCallback(SetListBox);
????????????setRichTextBoxCallback?=?new?SetRichTextBoxCallback(SetReceiveText);
????????????setComboBoxCallback?=?new?SetComboBoxCallback(SetComboBox);
????????????removeComboBoxItemsCallback?=
???????????????????new?RemoveComboBoxItemsCallback(RemoveComboBoxItems);
????????}
????????private?void?buttonstart_Click(object?sender?EventArgs?e)
????????{
????????????//由于服務器要為多個客戶服務,所以需要創建一個線程監聽客戶端連接請求?
????????????ThreadStart?ts?=?new?ThreadStart(AcceptConnect);
????????????Thread?myThread?=?new?Thread(ts);
????????????myThread.Start();
????????????buttonstart.Enabled?=?false;
????????????buttonstop.Enabled?=?true;?
????????}
????????private?void?AcceptConnect()
????????{
????????????//獲取本機所有IP地址?
????????????IPAddress[]?ip?=?Dns.GetHostAddresses(Dns.GetHostName());
????????????if?(ip.Length?==?0)//判斷是否是ipv6還是ipv4
????????????{
????????????????listener?=?new?TcpListener(ip[0]?51888);
????????????}
????????????else
????????????{
????????????????listener?=?new?TcpListener(ip[1]?51888);
????????????}
????????????listener.Start();
????????????while?(isExit?==?false)
????????????{
????????????????try
????????????????{
????????????????????//將事件的狀態設為非終止?
????????????????????allDone.Reset();
????????????????????//引用在異步操作完成時調用的回調方法?
????????????????????AsyncCallback?callback?=?new?AsyncCallback(AcceptTcpClientCallback);
????????????????????listBoxStatus.Invoke(setListBoxCallback?“開始等待客戶連接“);
????????????????????//開始一個異步操作接受傳入的連接嘗試?
????????????????????listener.BeginAcceptTcpClient(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\
?????目錄???????????0??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\
?????文件?????????932??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer.sln
?????文件???????17408??2013-10-22?16:29??AsyncTcpServer\AsyncTcpServer.suo
?????文件????????3810??2012-03-23?16:11??AsyncTcpServer\AsyncTcpServer\AsyncTcpServer.csproj
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\bin\
?????目錄???????????0??2013-10-22?15:41??AsyncTcpServer\AsyncTcpServer\bin\Debug\
?????文件???????15360??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\bin\Debug\AsyncTcpServer.exe
?????文件???????34304??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\bin\Debug\AsyncTcpServer.pdb
?????文件???????14328??2013-10-22?16:29??AsyncTcpServer\AsyncTcpServer\bin\Debug\AsyncTcpServer.vshost.exe
?????文件?????????490??2009-06-11?05:14??AsyncTcpServer\AsyncTcpServer\bin\Debug\AsyncTcpServer.vshost.exe.manifest
?????文件????????9033??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\FormServer.cs
?????文件????????8491??2012-03-23?16:11??AsyncTcpServer\AsyncTcpServer\FormServer.Designer.cs
?????文件????????5814??2012-03-23?16:11??AsyncTcpServer\AsyncTcpServer\FormServer.resx
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\obj\
?????目錄???????????0??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\obj\Debug\
?????文件?????????658??2013-10-22?16:29??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.csproj.FileListAbsolute.txt
?????文件?????????852??2013-10-22?15:41??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.csproj.GenerateResource.Cache
?????文件???????15360??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.exe
?????文件?????????180??2013-10-22?15:41??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.FormServer.resources
?????文件???????34304??2013-10-22?16:03??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.pdb
?????文件?????????180??2013-10-22?15:41??AsyncTcpServer\AsyncTcpServer\obj\Debug\AsyncTcpServer.Properties.Resources.resources
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\obj\Debug\Refactor\
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\obj\Debug\TempPE\
?????文件?????????500??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Program.cs
?????目錄???????????0??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\
?????文件????????1384??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\AssemblyInfo.cs
?????文件????????2878??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\Resources.Designer.cs
?????文件????????5612??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\Resources.resx
?????文件????????1099??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\Settings.Designer.cs
?????文件?????????249??2012-03-23?15:31??AsyncTcpServer\AsyncTcpServer\Properties\Settings.settings
............此處省略1個文件信息
- 上一篇:C#獲得當前登錄的所有QQ號碼可支持win10_64
- 下一篇:貝塞爾大地問題的解算
評論
共有 條評論