Server端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Server
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
byte[] data=new byte[1024];
IPEndPoint ipep=new IPEndPoint(IPAddress.Any,5000);
Socket listener=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
listener.Bind(ipep);
listener.Listen(10);
while(true)
{
Console.WriteLine("Waiting for client.........");
Socket handler=listener.Accept();
IPEndPoint clientInfo=(IPEndPoint)handler.RemoteEndPoint;
Console.WriteLine("Client:{0}-{1}",clientInfo.Address,clientInfo.Port);
string welcome="Welcome to my Test Server.";
data=Encoding.Default.GetBytes(welcome);
handler.Send(data,data.Length,SocketFlags.None);
while(true)
{
data=new byte[1024];
int byteCount=handler.Receive(data);
if(byteCount==0)
break;
Console.WriteLine("Client:{0}",Encoding.Default.GetString(data,0,byteCount));
handler.Send(data,byteCount,SocketFlags.None);
}
Console.WriteLine("Disconnection from {0}",clientInfo.Address);
handler.Close();
break;
}
listener.Close();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
Client端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Client
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
byte[] data=new byte[1024];
string input=null;
IPEndPoint ipep=new IPEndPoint(IPAddress.Parse("127.0.0.1"),5000);
Socket server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
server.Connect(ipep);
Console.WriteLine(server.RemoteEndPoint.ToString());
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
int recv=server.Receive(data);
string welcome=Encoding.Default.GetString(data,0,recv);
Console.WriteLine("server:{0}",welcome);
while(true)
{
input=Console.ReadLine();
if(input=="exit")
break;
server.Send(Encoding.Default.GetBytes(input));
data=new byte[1024];
recv=server.Receive(data);
Console.WriteLine(Encoding.Default.GetString(data,0,recv));
}
Console.WriteLine("Disconnection from server .....");
server.Shutdown(SocketShutdown.Both);
server.Close();
}
}
}