using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Socket服务器端
{
class Program
{
static void Main(string[] args)
{
//创建Socket
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//网络、数据流形式、Tcp协议
//1.绑定IP端口号
//IPAddress ipaddress = new IPAddress(new byte[] { 192,168,137,1 });
IPAddress ipaddress = IPAddress.Parse("192.168.137.1");//可以将一个字符串的IP地址转化为IPaddress的对象、同上一行代码
EndPoint point = new IPEndPoint(ipaddress,7788);//IPEndPoint:IP端口的一层封装类
//申请方法
tcpServer.Bind(point);//向系统申请一个可用的ip根端口号,用来做通信
//2.开始监听客户端连接
//监听方法
tcpServer.Listen(100);//开始监听等待客户端连接、允许(100)个客户端连接进来。
Console.WriteLine("开始监听连接");
//使用返回的Socket做通信
//3.接收客户端的连接//接收连接方法
//客户端的Socket对象的引用、用来收发客户端的数据
Socket clientSocket = tcpServer.Accept();//暂停当前线程,直到有一个客户端连接进来,之后进行下面的代码。
Console.WriteLine("一个客户端连接");
//4.客户端连接后向客户端发送一个消息
string message = "欢迎接入Socket";//向客户端传输的信息
byte[] data = Encoding.UTF8.GetBytes(message);//对一个字符串做编码,转为字节数组
clientSocket.Send(data);
Console.WriteLine("向客户端发送了一条数据");
//5.接收客户端的数据
byte[] datac = new byte[1024];//创建一个字节数组用来接收客户端发过来的数据
int length = clientSocket.Receive(datac);
string messagec = Encoding.UTF8.GetString(datac, 0, length);//0~length的字节数据转化为字符串(只把接收到的数据转化为字符串)
Console.WriteLine("接收到一条从客户端发来的消息"+messagec);
Console.ReadKey();
}
}
}