基本信息
源码名称:TCP简单通讯
源码大小:0.12M
文件格式:.rar
开发语言:C#
更新时间:2017-01-05
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
初学网络编程,需要了解的tcp的socket的小例子
private void AcceptMessage()
{
while (true)
{
try
{
NetworkStream netStream = new NetworkStream(newSocket);
byte[] datasize = new byte[4];
netStream.Read(datasize, 0, 4);
int size = System.BitConverter.ToInt32(datasize, 0); //得到缓冲区数据的大小
Byte[] message = new byte[size];
int dataleft = size;
int start = 0;
while (dataleft > 0) //逐字节读取数据
{
int recv = netStream.Read(message, start, dataleft);
start = recv;
dataleft -= recv;
}
this.rtbAccept.Rtf = System.Text.Encoding.Unicode.GetString(message);
}
catch
{
this.lbState.Items.Add("与客户断开连接");
break;
}
}
}
private void btnSend_Click(object sender, EventArgs e)
{
string str = this.rtbSend.Rtf;
int i = str.Length;
if (i == 0)
{
return;
}
else
{
//因为str为Unicode编码,每个字符占2字节,所以实际字节数应*2
i *= 2;
}
byte[] datasize = new byte[4];
//将32位整数值转换为字节数组
datasize = System.BitConverter.GetBytes(i);
byte[] sendbytes = System.Text.Encoding.Unicode.GetBytes(str);
try
{
NetworkStream netStream = new NetworkStream(newSocket);
netStream.Write(datasize, 0, 4);
netStream.Write(sendbytes, 0, sendbytes.Length);
netStream.Flush();
this.rtbSend.Rtf = "";
}
catch
{
MessageBox.Show("无法发送!");
}
}
private void btnStopListen_Click(object sender, EventArgs e)
{
this.btnStartListen.Enabled = true;
try
{
socket.Shutdown(SocketShutdown.Both); //此处总产生异常
socket.Close();
if (newSocket.Connected)
{
newSocket.Close();
thread.Abort();
this.lbState.Items.Add("停止监听,与客户断开连接");
}
}
catch
{
MessageBox.Show("监听尚未开始,关闭无效!");
}
}
初学网络编程,需要了解的tcp的socket的小例子
private void AcceptMessage()
{
while (true)
{
try
{
NetworkStream netStream = new NetworkStream(newSocket);
byte[] datasize = new byte[4];
netStream.Read(datasize, 0, 4);
int size = System.BitConverter.ToInt32(datasize, 0); //得到缓冲区数据的大小
Byte[] message = new byte[size];
int dataleft = size;
int start = 0;
while (dataleft > 0) //逐字节读取数据
{
int recv = netStream.Read(message, start, dataleft);
start = recv;
dataleft -= recv;
}
this.rtbAccept.Rtf = System.Text.Encoding.Unicode.GetString(message);
}
catch
{
this.lbState.Items.Add("与客户断开连接");
break;
}
}
}
private void btnSend_Click(object sender, EventArgs e)
{
string str = this.rtbSend.Rtf;
int i = str.Length;
if (i == 0)
{
return;
}
else
{
//因为str为Unicode编码,每个字符占2字节,所以实际字节数应*2
i *= 2;
}
byte[] datasize = new byte[4];
//将32位整数值转换为字节数组
datasize = System.BitConverter.GetBytes(i);
byte[] sendbytes = System.Text.Encoding.Unicode.GetBytes(str);
try
{
NetworkStream netStream = new NetworkStream(newSocket);
netStream.Write(datasize, 0, 4);
netStream.Write(sendbytes, 0, sendbytes.Length);
netStream.Flush();
this.rtbSend.Rtf = "";
}
catch
{
MessageBox.Show("无法发送!");
}
}
private void btnStopListen_Click(object sender, EventArgs e)
{
this.btnStartListen.Enabled = true;
try
{
socket.Shutdown(SocketShutdown.Both); //此处总产生异常
socket.Close();
if (newSocket.Connected)
{
newSocket.Close();
thread.Abort();
this.lbState.Items.Add("停止监听,与客户断开连接");
}
}
catch
{
MessageBox.Show("监听尚未开始,关闭无效!");
}
}