参考:sikiedu.com/course/346/task/21994/show
siki学院
新建两个项目
SocketServerTest
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace SocketServerTest
{
class Program
{
static Socket serverSocket;
static void Main(string[] args)
{
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6666));
serverSocket.Listen(10);
Console.WriteLine("服务器启动成功");
Thread thread = new Thread(AcceptClient);
thread.Start();
Console.ReadKey();
}
private static void AcceptClient()
{
Socket clientSocket=serverSocket.Accept();
byte[] data = Encoding.Default.GetBytes("服务器告诉你连接成功了");
clientSocket.Send(data);
Thread thread = new Thread(ReveiveMsg);
thread.Start(clientSocket);
}
private static void ReveiveMsg(object clientSocket)
{
byte[] data = new byte[1024];
int length=(clientSocket as Socket).Receive(data);
Console.WriteLine(Encoding.Default.GetString(data, 0, length));
}
}
}
SocketClientTest
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace SocketClientTest
{
class Program
{
private static Socket clientSocket;
static void Main(string[] args)
{
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6666));
Console.WriteLine("与服务器建立了连接");
clientSocket.Send(Encoding.Default.GetBytes("客户端发送的一条消息"));
Thread thread = new Thread(Receive);
thread.Start();
Console.ReadKey();
}
private static void Receive()
{
byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
Console.WriteLine(Encoding.Default.GetString(data, 0, length));
}
}
}
点击生成解决方案