//建立两个程序
//接收程序也可称为服务端
static void Main(string[] args)
{
Console.WriteLine("开始:创建一个Socket对象");
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 8080));
listener.Listen(0);
while (true)
{
Console.WriteLine("等待连接到端口8080");
Socket socket = listener.Accept();
string receiveValue = string.Empty;
while (true)
{
byte[] receivedBytes = new byte[1024];
int numBytes = socket.Receive(receivedBytes);
Console.WriteLine("接收 .");
receiveValue += Encoding.UTF8.GetString(receivedBytes, 0, numBytes);
if (receiveValue.IndexOf("[FINAL]") > -1)
{
break;
}
}
Console.WriteLine("接收值:{0}", receiveValue);
string replyValue = "消息成功接收";
byte[] replyMessage = Encoding.UTF8.GetBytes(replyValue);
socket.Send(replyMessage);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
listener.Close();
Console.ReadKey();
}
//发送消息,也可称为客户端
protected delegate void UpdateDisplayDelegate(string text);
static void Main(string[] args)
{
byte[] receivedBytes = new byte[1024];
IPHostEntry ipHost = Dns.Resolve("127.0.0.1");
IPAddress iP = ipHost.AddressList[0];
IPEndPoint iPEndPoint = new IPEndPoint(iP, 8080);
Console.WriteLine("开始:创建一个Socket对象");
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sender.Connect(iPEndPoint);
Console.WriteLine("成功连接到{0}", sender.RemoteEndPoint);
string sendingMessage = "你好世界 Scoket 测试";
Console.WriteLine("创建消息:" + sendingMessage);
byte[] forwardMessage = Encoding.UTF8.GetBytes(sendingMessage + "[FINAL]");
sender.Send(forwardMessage);
int totalBytesReceived = sender.Receive(receivedBytes);
Console.WriteLine("从服务器提供的消息:{0}", Encoding.UTF8.GetString(receivedBytes, 0, totalBytesReceived));
sender.Shutdown(SocketShutdown.Both);
sender.Close();
Console.ReadKey();
}