TCP通訊(二)——非同步連線
阿新 • • 發佈:2019-01-07
本篇部落格主要講述的非同步的問題。首先明確非同步到底是什麼東東,非同步就是發起一個指令,並不需要一直等待指令的執行結果,而是可以繼續忙其他的事情。
一、非同步連線
服務端程式碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
namespace TCPServer
{
class Program
{
private const int portNum = 19939;
static void Main(string[] args)
{
TcpListener listener = new TcpListener(IPAddress.Any, portNum);
listener.Start();
bool isDone = false;
while(!isDone)
{
TcpClient client = listener.AcceptTcpClient();
if(client!=null )
{
Console.WriteLine("接收到一個客戶端了 "+client.Client.RemoteEndPoint);
}
}
listener.Stop();
}
}
}
客戶端程式碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Text;
namespace TCPClient
{
class Program
{
private const string hostName = "127.0.0.1";
private const int portNum = 19939;
static void Main(string[] args)
{
try
{
TcpClient client = new TcpClient();
client.BeginConnect(hostName, portNum, OnConnected, "hello world");
}
catch(Exception e)
{
Console.WriteLine("網路異常!");
}
}
static void OnConnected(IAsyncResult ar)
{
object obj = ar.AsyncState;
}
}
}
執行服務端,除錯客戶端:
over!