如題 在打開VS直接運行軟體的時候,socket通訊很快,能夠打到設定的頻率水平。在關閉VS運行可執行檔案,運行速度明顯變慢,從燈光閃爍很明顯,請問這個是什么問題,沒有開啟什么服務么?
uj5u.com熱心網友回復:
使用的VS2019,Windows10 系統。在我同學電腦里面同樣的配置運行EXE檔案通訊速度很快,換作win7系統,速度又明顯變慢。uj5u.com熱心網友回復:
啟動監聽代碼//當點擊開始監聽的時候 在服務器端創建一個負責監IP地址跟埠號的Socket
socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//獲取IP
IPAddress ip = IPAddress.Any;
//創建埠號
IPEndPoint port = new IPEndPoint(ip, 9000);
//監聽1
socketWatch.Bind(port);
LogMessage("監聽主板成功...");
socketWatch.Listen(10);
bgw = new BackgroundWorker();
bgw.DoWork += Listen;
bgw.WorkerSupportsCancellation = true;
if (!bgw.IsBusy)
bgw.RunWorkerAsync(socketWatch);//后臺啟動監聽服務
監聽執行緒
socketTest = socketWatch.Accept();
IPEndPoint clientipe = (IPEndPoint)socketTest.RemoteEndPoint;
LogMessage(socketTest.RemoteEndPoint.ToString() + ":" + "連接成功" + "\r\n");
toolStripStatusLabel1.Text = socketTest.RemoteEndPoint.ToString() + ": " + "與客戶端連接成功...";
bool reConnected = false;
foreach (var item in socketSendList)
{
if (item.RemoteEndPoint.ToString().Split(":")[0] == clientipe.Address.ToString())
reConnected = true;
}
if (!reConnected)
{
socketSendList.Add(socketTest);
}
else
{
for (int i = 0; i < socketSendList.Count; i++)
{
if (socketSendList[i] == socketTest)
{
socketSendList.RemoveAt(i);
socketSendList.Insert(i, socketTest);//剔除舊連接,更新新連接
}
}
}
Thread th = new Thread(Recive);
th.IsBackground = true;
th.Start(socketTest);
接收
Socket socketSendTest = (Socket)o;
try
{
while (true)
{
//客戶端連接成功后,服務器應該接受客戶端發來的訊息
if (socketSendTest == null)
{
LogError("請選擇要發送的客戶端");
break;
}
byte[] buffer = new byte[1024 * 2];
int r = socketSendTest.Receive(buffer);
if (r == 0)
{
break;
}
}
}
命令發送
byte[] newBuffer = HexStrTobyte(command);
int sleepTime = int.Parse(txtSleepTime.Text);
while (isRunning)
{
try
{
completeHandle1 = false;
foreach (var item in socketSendList)
{
item.Send(newBuffer);
Thread.Sleep(sleepTime);
}
}
catch (Exception ex)
{
LogError(ex.Message);
break;
}
}
uj5u.com熱心網友回復:
不看燈,看網卡,看網路一個千兆網卡和一個百兆網卡怎么比啊。
一個百兆光纖獨享和一個200戶公用的路由器又怎么比啊
測驗要公平,想測驗不同作業系統的問題,就用127.0.0.1本地回環地址測驗。本地回環壓根不過網卡直接走PCI總線,這樣還相對公平點。
uj5u.com熱心網友回復:
另外測驗通訊速度并不看燈,看你收到多少位元組,你可以自己寫統計如果不想寫統計,可以在關掉其他應用的情況下,看window的性能計數器的網路部分(windows性能計數器在window任務管理器里面藏著,自己找找看)
uj5u.com熱心網友回復:
打開性能監視器,監控一下網路流量。https://www.cnblogs.com/deepthought/p/11408176.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/232823.html
標籤:C#
上一篇:.netcore控制臺應用程式使用log4net無法生成日志
下一篇:關于列印機生成spl檔案的問題
