服務端客服端流程圖
tcp服務端
// 1. 新建一個Socket 服務器端 連接對象
// 參數 尋址范圍,數據類型,協議格式
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
byte[] ip = { 192, 168, 1, 1 };
IPAddress address = new IPAddress(ip);
IPEndPoint point = new IPEndPoint(address, 8090);
tcpServer.Bind(point); // 2. 綁定Ip和端口號
tcpServer.Listen(100); // 3. 設置監聽連接的最大請求數
Socket newSocket = tcpServer.Accept(); // 4. 等待客戶端的連接,會阻塞當前線程,直到接收到客戶端的連接
string sendMessage = "Hello Welcome Connect";
newSocket.Send(Encoding.UTF8.GetBytes(sendMessage)); // 5.向客戶端發送一條消息
byte[] data = new byte[1024];
int length = newSocket.Receive(data);
Console.WriteLine("接收到客戶端的數據"+Encoding.UTF8.GetString(data, 0, length));
Console.ReadKey();
tcp客戶端
//1. 建立客戶端連接對象
// 參數 尋址范圍,數據類型,協議格式
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 2. 建立一個連接,請求連接到服務器
clientSocket.Connect(new IPEndPoint(new IPAddress(new byte[] { 192, 168, 199, 117 }), 8090));
// 建立一個用來接受數據的容器
byte[] data = new byte[1024];
// 3. 接受服務端發送的數據
int length = clientSocket.Receive(data); // 該數組用來接受數組,接受服務端傳遞的數據 , 返回值,用來表示本次接收到的數據長度
// 4. 將服務器端發送過來的數據轉換成字符串
string reciveMessage = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine(reciveMessage);
string message = Console.ReadLine();
clientSocket.Send(Encoding.UTF8.GetBytes(message));
Console.ReadKey();