C#通过Socket实现客户端和服务器端通信的简单例子
下面的代码演示了如果创建一个用于在客户端和服务端交换信息的代码
Socket Server 服务器端
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace ConsoleApplication1
{
Class Program
{
static void Main (String[] args)
{
// 1. to create a socket
Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
/ / 2. Fill IP
IPAddress IP = IPAddress.Parse ("127.0.0.1");
IPEndPoint IPE = new IPEndPoint (IP, 4321);
/ / 3. binding
sListen.Bind (IPE);
/ / 4. Monitoring
sListen.Listen (2);
/ / 5. loop to accept client connection requests
while (true)
{
Socket clientSocket;
try
{
clientSocket = sListen.Accept();
}
catch
{
throw;
}
// send data to the client
clientSocket.Send (Encoding.Unicode.GetBytes ("You there?!!!!"));
}
}
}
}
socket client 客户端
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace ConsoleApplication2
{
Class Program
{
static void Main (String[] args)
{
// 1.create socket
Socket S = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 2. complete remote IP
IPAddress IP = IPAddress.Parse ("127.0.0.1");
IPEndPoint IPE = new IPEndPoint (IP, 4321);
// 3. connect to the server
Console.WriteLine("Start to connect to server ....");
s.Connect (IPE);
// 4. to receive data
byte[] buffer = new byte[1024];
s.Receive (buffer, buffer.Length, SocketFlags.None);
var Msg = Encoding.Unicode.GetString (buffer);
Console.WriteLine ("received message: (0)", Msg);
Console.ReadKey ();
}
}
}
