using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Net;
using System.Net.Sockets;
namespace A20_UDP_Server
{
class Server
{
private Socket _SockServer; //服务器监听套接字
private bool _IsListenContecion = true; //是否在监听(目的是方便退出)
public Server()
{
Console.WriteLine("---------------服务端启动-----------------");
//定义网络终结点(封装IP与端口)
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1000);
//实例化套接字
_SockServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//服务器端绑定地址
_SockServer.Bind(endPoint);
EndPoint ep = endPoint as EndPoint;
while (true)
{
byte[] msgArray = new byte[1024 * 1024]; //1M空间
//接收客户端发来的数据,返回真实的长度
int trueClinetMsgLength = _SockServer.ReceiveFrom(msgArray, ref ep);
//byte数组转String
string strMsg = Encoding.UTF8.GetString(msgArray, 0, trueClinetMsgLength);
//显示客户端发来的数据
Console.WriteLine("客户端发来的数据:" + strMsg);
}
}
static void Main(string[] args)
{
Server obj = new Server();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Net;
using System.Net.Sockets;
namespace A21_UDP_Client
{
class Client
{
private Socket _SockClient; //客户端通讯套接字
private IPEndPoint serverEndPoint; //连接到的服务器IP与端口信息
public Client()
{
//通讯地址端口号
serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1000);
//建立客户端的Sockte
_SockClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
EndPoint ep = serverEndPoint as EndPoint;
while (true)
{
//输入信息
string strMsg = Console.ReadLine();
//退出
if (strMsg == "gm_exit")
{
break;
}
//字节转换
Byte[] byteArray = Encoding.UTF8.GetBytes(strMsg);
//发送数据
_SockClient.SendTo(byteArray, ep);
Console.WriteLine("我: " + strMsg);
}
//关闭连接
_SockClient.Shutdown(SocketShutdown.Both);
//清理连接的资源
_SockClient.Close();
}
static void Main(string[] args)
{
Client obj = new Client();
}
}
}
Server类和Client类分别在不同的启动项中
这里的Server和Client本质上是“接收端”和“发送端”的关系。
并非真正意义上的服务器和客户端。