1. 程式人生 > >TCP通訊(二)——非同步連線

TCP通訊(二)——非同步連線

本篇部落格主要講述的非同步的問題。首先明確非同步到底是什麼東東,非同步就是發起一個指令,並不需要一直等待指令的執行結果,而是可以繼續忙其他的事情。

一、非同步連線
服務端程式碼:

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!