C#的TCP通信

.NET的UDP通信我死活玩不转,听说UDP库类有bug,所以我就不瞎折腾了,精力转向TCP。
TCP是连接模型,如下:

服务器连接                     服务器断开
    ↓                                   ↑
服务器接收→服务器处理→服务器发送
    ↑                                   ↓
客户端发送←客户端处理←客户端接收
    ↑                                   ↓
客户端连接                     客户端断开

服务器代码如下:
// ServerListen
TcpListener tcplistener = new  TcpListener( int .Parse(txtPort.Text));
tcplistener.Start();
byte [] btServerReceive = new   byte [ 256 ];
string  strServerReceive = string .Empty;
// Loop for Listen
while ( true )
{
 TcpClient tcp
= tcplistener.AcceptTcpClient();
 NetworkStream ns
= tcp.GetStream();
 
int  intReceiveLength =  ns.Read(btServerReceive, 0 ,btServerReceive.Length);
 strServerReceive
= UnicodeEncoding.Unicode.GetString(btServerReceive, 0 ,intReceiveLength);
 txtServerResult.AppendText(
" ServerReceive: "   +  strServerReceive + " " );
 ns.Write(btServerReceive,
0 ,btServerReceive.Length);
 txtServerResult.AppendText(
" ServerSend: "   +  strServerReceive + " " );
 tcp.Close();
}

客户端代码如下:
// ClientSend
TcpClient tcp = new  TcpClient(txtHost.Text, int .Parse(txtPort.Text));
byte [] btClientSend = UnicodeEncoding.Unicode.GetBytes(txtClientResult.Text);
NetworkStream ns
= tcp.GetStream();
ns.Write(btClientSend,
0 ,btClientSend.Length);
// ClientReceive
byte [] btClientReceive = new   byte [ 256 ];
int  intReceiveLength =  ns.Read(btClientReceive, 0 ,btClientReceive.Length);
string  strClientReceive = UnicodeEncoding.Unicode.GetString(btClientReceive, 0 ,intReceiveLength);
tcp.Close();
txtClientResult.Text
= strClientReceive;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值