using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace TCPSocketServer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("服务端已经启动");
// 服务器端Socket
// 1. 创建了一个 Socket连接对象 参数:(1、寻址方案, 2、Socket数据传输格式, 3、Socket数据传输协议)
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 包装一个IP地址。 通过byte数组来传递。 每一个元素,代表IP地址的一段。总共4段
IPAddress address = new IPAddress(new byte[]{192,168,1,85});
// ipPoint 里面就包含了 IP地址信息和端口信息
IPEndPoint ipPoint = new IPEndPoint(address,12358);
//2. 绑定IP地址和端口
tcpServer.Bind(ipPoint);
//3. 监听,或者说允许多少个客户端访问
tcpServer.Listen(25);
//4. 等待客户端的连接,会卡住当前线程, 如果有客户端连接上,那么就返回这个客户端的信息。 所以返回值类型是Socket
Socket clientSocket = tcpServer.Accept();
string sendMessage = "Hello Welcome Connect!";
// 5. 给连接上的客户端发送消息。 发送的内容要求是byte ,所以我们要对传递的字符串做一个转换
clientSocket.Send(Encoding.UTF8.GetBytes(sendMessage));
// 6. 接收客户端的消息
byte[] reciveData = new byte[1024];
int dataLength = clientSocket.Receive(reciveData);
//把byte数组中的数据转换成字符串
string receiveString = Encoding.UTF8.GetString(reciveData, 0, dataLength);
Console.WriteLine("接收到客户端的消息" + receiveString);
Console.WriteLine("程序执行完毕");
Console.ReadKey();
}
}
}
网友评论