⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class1.cs

📁 c#网络编程及应用-刘瑞新
💻 CS
字号:
using System;
using System.Net;
using System.Net.Sockets;
class TestSimpleUdp
{
	public static void Main()
	{
		bool exit=false;
		int length;
		byte[] bytes=new byte[1024];
		Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
		//设置接收超时时间为2秒
		socket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,2000);
		//参数1指定本机IP地址(此处指所有可用的IP地址),参数2指定接收用的端口
		IPEndPoint myHost=new IPEndPoint(IPAddress.Any,6789);
		//将本机IP地址和端口与套接字绑定,为接收做准备
		socket.Bind(myHost);
		//定义远程终端的IP地址和端口(实际使用时应为远程主机IP地址),为发送数据做准备
		IPEndPoint iep=new IPEndPoint(IPAddress.Parse("127.0.0.1"),6789);
		EndPoint remote=(EndPoint)iep;
		while(true)
		{
			int retry=0;
			while(true)
			{
				try
				{
					Console.Write("输入发送的信息(bye退出):");
					string str=Console.ReadLine();
					if(str=="bye")
					{
						exit=true;
						break;
					}
					//字符串转换为字节数组
					bytes=System.Text.Encoding.Unicode.GetBytes(str);
					//向远程终端发送信息
					socket.SendTo(bytes,remote);
					//从本地绑定的IP地址和端口接收远程终端的数据,返回接收的字节数
					socket.ReceiveFrom(bytes,ref remote);
					str=System.Text.Encoding.Unicode.GetString(bytes);
					Console.WriteLine("接收到信息:{0}",str);
				}
				catch
				{
					if(retry<3)
					{
						retry++;
						continue;
					}
					else
					{
						Console.WriteLine("发送失败!");
						break;
					}
				}
			}
			if(exit) break;
		}
		//关闭套接字
		socket.Close();
		Console.WriteLine("请按回车键结束。");
		Console.ReadLine();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -