TCP通訊(一) 同步連線

2021-07-15 02:27:17 字數 1612 閱讀 5927

這篇部落格主要包含兩個部分的內容:乙個是服務端的**,乙個是客戶端的**。

一、服務端類

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

catch(exception e)}}

listener.stop();}}

}

服務端**說明:

1、埠號,即告訴客戶端我哪間屋子是敞開的。關於這句**,還是要多說幾句的:

tcplistener listener =new tcplistener(ipaddress.any, portnum);
ipaddress.any是代表任意位址的意思,即:0.0.0.0

ipaddresss.loop是代表本機,也就是:127.0.0.1

所以這個建構函式的意思是,要傳遞乙個ip位址,以及以埠號。早期的c#提供的api,只需要埠號,但是已經標記過時了。所以,你這裡既可以填寫本機位址,也可以填寫某個特定的ip。比如192.168.1.123等等,如果是字串的話,那麼則需要用下面的函式轉換一下。

tcplistener listener = new tcplistener(ipaddress.parse("191.168.1.123"),portnum);
這樣就可以了。

2、然後開始監聽:

3、迴圈監聽是否有客戶端連線進來。故有乙個while死迴圈。

4、當有乙個客戶端連線的時候,則後去流,然後向管道中寫入當前系統時間,緊接著就關閉連線。

二、客戶端

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

catch(exception e)}}

}

執行說明:

1、先執行服務端,然後執行客戶端,你會發現客戶端程式的控制台視窗,收到了,乙個日期字串。

擴充套件:

關於windows下的埠監聽檢視,我們可以使用如下的命令:netstat -ano命令。

C Socket教程詳解一 同步TCP程式設計

非同步tcp程式設計傳送門 tcplistener類,伺服器監聽類,用於監聽和連線客戶端,該類重要方法如下 構造方法 public tcplistener ipendpoint iep public tcplistener ipaddress localaddress,int port 第乙個建構函...

解析(一) 同步 非同步

目錄 同步 非同步 注 參考 問題 一 請說明一下執行緒中的同步和非同步有何異同?並且請舉例說明在什麼情況下會使用到同步和非同步?兩個程序間的訊息隱含著某種程式的同步 只有當乙個程序傳送出訊息之後,接受者才能接收訊息。且當乙個程序產生了send或者receive原語後,需要確定會發生什麼。即發出乙個...

TCP通訊(二) 非同步連線

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