winform网络编程(三)
2020-12-13 02:36
标签:网络编程 winform tcplistener侦听 tcplistener和tcpclien udpclient类 TcpClient类和TcpListener类 (1)TcpClient的用途: 用于在同步阻止模式下通过网络来链接、发送和接受流数据,在此情况下,必须有侦听此连接的请求,而侦听的任务就交给TcpListener实例或Socket实例 (2)TcpClient的两种方法连接到侦听器 第一种:创建一个TcpClient,并调用3个可用的Connect方法之一 第二种:使用远程主机的主机名和端口号创建TcpClient,此构造函数将自动尝试一个连接 (3)TcpClient的常用属性和方法 Available属性 获取已经从网络接收且可供读取的数据量 Connected属性 获取一个值,该值指示TcpClient的基础Socket是否已连接 到远程主机 ReceiveBufferSize属性 获取或设置接收缓冲区的大小 SendBufferSize属性 获取或设置发送缓冲区的大小 Close方法 释放TcpClient实例,不关闭基础连接 Connect方法 使用指定的主机名和端口号将客户端连接到TCP主机 GetStream方法 返回用于发送和接收数据的NetwordStream (4)TcpListener常用的属性和方法 LocalEndPoint属性 获取当前TcpListener的基础EndPoint Server属性 获取基础网络Socket AcceptSocket/AcceptTcpClient方法 接收挂起的链接请求 Start方法 开始侦听传入的连接请求 Stop方法 关闭侦听器 (5)实例代码(部分)
UdpClient类 (1)UdpClient类用于在阻止同步模式下发送和接收无连接的UDP数据。 UDP是无连接的传输协议,所以不需要在发送和接收数据前建立远程主机连接。 (2)两种方法建立默认远程主机 第一种:使用远程主机名和端口号作为参数创建UdpClient类的实例 第二种:创建UdpClient类的实例,然后调用Connect类的实例 (3)UdpClient类常用的属性和方法 Available属性 获取从网络接收的可读取的数据量 Client属性 获取或设置基础网络的Socket Close方法 关闭UDP连接 Connect方法 简历默认远程主机 Receive方法 返回已由远程主机发送的UDP数据报 Send方法 将UDP数据报发送到远程主机 (3)实例代码: textBox1:ip地址 textBox2:端口号 textBox3:发送的信息 richTextBox:显示信息
winform网络编程(三),搜素材,soscw.com winform网络编程(三) 标签:网络编程 winform tcplistener侦听 tcplistener和tcpclien udpclient类 原文地址:http://blog.csdn.net/u010792238/article/details/29188581 private void button1_Click(object sender, EventArgs e)
{
//实例化一个TcpListener对象,并初始化为空
TcpListener tcplistener = null;
//实例化一个IPAddress对象,用来表示网络IP地址
IPAddress ipaddress = IPAddress.Parse(textBox1.Text);
//定义一个int类型变量,用来存储端口号
int port = Convert.ToInt32(textBox2.Text);
tcplistener = new TcpListener(ipaddress, port); //初始化TcpListener对象
tcplistener.Start(); //开始TcpListener侦听
richTextBox1.Text = "等待连接...\n";
TcpClient tcpclient = null; //实例化一个TcpClient对象,并赋值为空
if (tcplistener.Pending()) //判断是否有挂起的连接请求
tcpclient = tcplistener.AcceptTcpClient(); //使用AcceptTcpClient初始化TcpClient对象
else
tcpclient = new TcpClient(textBox1.Text, port); //使用TcpClient的构造函数初始化TcpClient对象
richTextBox1.Text += "连接成功!\n";
tcpclient.Close(); //关闭TcpClient连接
tcplistener.Stop(); //停止TcpListener侦听
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = string.Empty;
//实例化UdpClient对象
UdpClient udpclient = new UdpClient(Convert.ToInt32(textBox2.Text));
//调用UdpClient对象的Connect建立默认远程主机
udpclient.Connect(textBox1.Text, Convert.ToInt32(textBox2.Text));
//定义一个字节数组,用来存放发送到远程主机的信息
Byte[] sendBytes = Encoding.Default.GetBytes(textBox3.Text);
//调用UdpClient对象的Send方法将Udp数据报发送到远程主机
udpclient.Send(sendBytes, sendBytes.Length);
//实例化IPEndPoint对象,用来显示响应主机的标识
IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, 0);
//调用UdpClient对象的Receive方法获得从远程主机返回的Udp数据报
Byte[] receiveBytes = udpclient.Receive(ref ipendpoint);
//将获得的Udp数据报转换为字符串形式
string returnData = Encoding.Default.GetString(receiveBytes);
richTextBox1.Text = "接收到的信息:" + returnData.ToString();
//使用IPEndPoint对象的Address和Port属性获得响应主机的IP地址和端口号
richTextBox1.Text += "\n这条信息来自主机" + ipendpoint.Address.ToString()
+ "上的" + ipendpoint.Port.ToString() + "端口";
//关闭UdpClient连接
udpclient.Close();
}