第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用.Net 4.5異步功能進行套接字編程

使用.Net 4.5異步功能進行套接字編程

C#
慕碼人8056858 2019-09-20 16:15:26
我以前使用過BeginAccept()和BeginRead(),但與Visual Studio 2012我想利用新的異步的(async,await)功能在我的socket服務(wù)器程序。我該如何完成AcceptAsync和ReceiveAsync功能?using System.Net;using System.Net.Sockets;namespace OfficialServer.Core.Server{    public abstract class CoreServer    {        private const int ListenLength = 500;        private const int ReceiveTimeOut = 30000;        private const int SendTimeOut = 30000;        private readonly Socket _socket;        protected CoreServer(int port, string ip = "0.0.0.0")        {            _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            _socket.Bind(new IPEndPoint(IPAddress.Parse(ip), port));            _socket.Listen(ListenLength);            _socket.ReceiveTimeout = ReceiveTimeOut;            _socket.SendTimeout = SendTimeOut;            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true);        }        public void Start()        {            }    }}
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

您可以使用TaskFactory.FromAsync自動換行Begin/ End成對async操作。


Stephen Toub 在他的博客上有一個等待Socket更有效的*Async終端的等待。我建議將其與TPL Dataflow結(jié)合使用,以創(chuàng)建完全async兼容的Socket組件。


查看完整回答
反對 回復(fù) 2019-09-20
?
胡子哥哥

TA貢獻1825條經(jīng)驗 獲得超6個贊

Socket.ReceiveAsync很奇怪。它與.net4.5中的async / await功能無關(guān)。它被設(shè)計為一種替代套接字API,它不會像BeginReceive / EndReceive那樣破壞內(nèi)存,只需要在最核心的服務(wù)器應(yīng)用程序中使用。為了給您一些規(guī)模感,我們運行了一個服務(wù)器BeginXXXX / EndXXXX方法,可以輕松支持5000個連接的客戶端。我從來沒有需要使用ReceiveAsync,我可能在考慮使用ReceiveAsync和SocketAsyncEventArgs進行重寫之前升級硬件,因為它可能在我的時間方面更便宜。

查看完整回答
反對 回復(fù) 2019-09-20
  • 3 回答
  • 0 關(guān)注
  • 570 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號