本篇写的是利用C# Socket TCP 的同步方式实现服务端和客户端的收发消息,作为一个简单的入门。
1.新建一个 TCPServer的控制台应用程序:
把下面代码粘贴到Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
namespace TCPServer
{
class Program
{
static void Main(string[] args)
{
string ipStr = "127.0.0.1";
int port = 888;
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress iPAddress = IPAddress.Parse(ipStr);
IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, port);
serverSocket.Bind(iPEndPoint);
serverSocket.Listen(0); // 0-表示处理连接数不受限制
Socket clientSocket = serverSocket.Accept(); // 接受一个客户端连接
/// 向客户端发送一条消息
string msg = "你好,Client!";
byte[] data = Encoding.UTF8.GetBytes(msg);
clientSocket.Send(data);
// 接受客户端的一条消息
byte[] dataBuffer = new byte[1024];
int count = clientSocket.Receive(dataBuffer);
string msgReceive = Encoding.UTF8.GetString(dataBuffer, 0, count);
Console.WriteLine(msgReceive);
clientSocket.Close(); // 关闭与客户端的连接
serverSocket.Close();
}
}
}
2.新建一个 TCPClient的控制台应用程序:
把下面代码粘贴到Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace TCPClient
{
class Program
{
static void Main(string[] args)
{
string serverIPStr = "127.0.0.1";
int port = 888;
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(new IPEndPoint(IPAddress.Parse(serverIPStr), port));
// 接收服务器消息
byte[] data = new byte[1024];
int count = clientSocket.Receive(data);
string msg = Encoding.UTF8.GetString(data, 0, count);
Console.WriteLine(msg);
// 给客户端发送消息
string sendMsg = Console.ReadLine();
byte[] sendData = Encoding.UTF8.GetBytes(sendMsg);
clientSocket.Send(sendData);
clientSocket.Close();
}
}
}
3.启动结果:(截图)
先启动服务器端,再启动客户端。