正在学习socket相关的知识,记录下敲码过程。
class Program
{
static void Main(string[] args)
{
//1.创建Socket(socket的命名空间是System.Net.Sockets)
Socket tcpServer = new Socket
(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2.绑定ip和端口号(IPAddress的命名空间是System.Net)
IPAddress ipaddress = new IPAddress(new byte[] { 192, 168, 100, 185 });
EndPoint point = new IPEndPoint(ipaddress, 8828);//ipendpoint是对ip+端口号做了一层封装的类
tcpServer.Bind(point);//向操作系统申请一个可用的ip跟端口号,用来做通信
//3.开始监听(等待客户端连接)
tcpServer.Listen(100);//参数是最大的连接数
Console.WriteLine("开始监听");
//........................................................
//................等待客户端连接..........................
//........................................................
//暂停当前的线程,直到有一个客户端连接过来,之后进行下面的代吗
Socket clientSocket = tcpServer.Accept();
Console.WriteLine("一个客户端连接过来");
//使用返回的socket跟客户端做通信
string message = "hello 欢迎你";
//对字符串做编码,得到一个字符串的字节数组
byte[] data = Encoding.UTF8.GetBytes(message);//对字符串做编码,得到一个字符串的字节数组
clientSocket.Send(data);
Console.WriteLine("向客户端发送了一条数据");
//创建一个字节数组用来当做容器,去承接客户端发送过来的数据
byte[] data2 = new byte[1024];//创建
int length = clientSocket.Receive(data2);
string message2 = Encoding.UTF8.GetString(data2, 0, length);//把字节数据转化成一个字符串
Console.WriteLine("接收到了一个客户端发送过来的消息:" + message2);
Console.ReadKey();
}
}