要進行基於TCP協議的網絡通訊
在
在下面的例子中
先運行服務器端程序
然後運行客戶端程序
發送完成後
通過這個例子我們可以了解TcpClient類的基本用法
using System;
using System
using System
//首先討論一下客戶端程序
TcpClient client = new TcpClient(hostName
//然後使用TcpClient類的GetStream()方法獲取數據流
NetworkStream ns = client
注意
建立數據流之後
public override int Read(in byte[] buffer
buffer是緩沖數組
byte[] bytes = new byte[
int bytesRead = ns
// 然後顯示到屏幕上
Console
//最後不要忘記關閉連接
client
下面是本例完整的程序清單
using System;
using System
using System
namespace TcpClientExample
{
public class TcpTimeClient
{
private const int portNum =
private const string hostName =
[STAThread]
static void Main(string[] args)
{
try
{
Console
TcpClient client = new TcpClient(hostName
NetworkStream ns = client
byte[] bytes = new byte[
int bytesRead = ns
Console
client
Console
}
catch (Exception e)
{
Console
}
}
}
}
上面這個例子清晰地演示了客戶端程序的編寫要點
TcpListener的關鍵在於AcceptTcpClient()方法
首先我們使用端口初始化一個TcpListener實例
private const int portNum =
TcpListener listener = new TcpListener(portNum);
listener
//如果有未處理的連接請求
TcpClient client = listener
NetworkStream ns = client
//然後
byte[] byteTime = Encoding
ns
ns
client
服務器端程序完整的程序清單如下
using System;
using System
using System
namespace TimeServer
{
class TimeServer
{
private const int portNum =
[STAThread]
static void Main(string[] args)
{
bool done = false;
TcpListener listener = new TcpListener(portNum);
listener
while (!done)
{
Console
TcpClient client = listener
Console
NetworkStream ns = client
byte[] byteTime = Encoding
try
{
ns
ns
client
}
catch (Exception e)
{
Console
}
}
listener
}
}
}
把上面兩段程序分別編譯運行
使用上面介紹的基本方法
From:http://tw.wingwit.com/Article/program/net/201311/12305.html