Server、Client端分别在兩個項目中
Server端:
try
{
int port = 4000;
string host = "127.0.0.1";
IPAddress ipa = IPAddress.Parse(host);//将IP字元串轉換為IP位址的執行個體
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, port);//将網絡端點表示為ip位址和端口号 允許任意IP
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//建立一個socket類
s.Bind(ipe);//綁定端口号
s.Listen(0);//開始監聽
Console.WriteLine("wait for connect");
Socket tmp = s.Accept();//為新連接配接建立新的socket
Console.WriteLine("get a connect");
while (true)
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = tmp.Receive(recvBytes, recvBytes.Length, 0);//從用戶端接收資訊
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
Console.WriteLine("get message:{0}", recvStr);//把從用戶端傳來的資訊顯示出來
string sendStr = "Yeah! Client send message sucessful";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
tmp.Send(bs, bs.Length, 0);//傳回用戶端成功資訊
//tmp.Close();
//s.Close();
}
catch (ArgumentNullException ex)
Console.WriteLine(ex);
catch (SocketException ex)
{ Console.WriteLine(ex); }
Console.WriteLine("press enter to exit");
Console.ReadLine();
Client端:
{
int port = 4000;
string host = "127.0.0.1";
IPAddress ipa = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ipa, port);//把ip和端口轉化為ipendpoint執行個體
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//建立一個socket
Console.WriteLine("connecting.....");
s.Connect(ipe);//連接配接到伺服器
while (true)
{
Console.WriteLine("請輸入要發送的資訊:");
string sendStr = Console.ReadLine();
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
Console.WriteLine("SendMessage");
s.Send(bs, bs.Length, 0);//發送測試資訊
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = s.Receive(recvBytes, recvBytes.Length, 0);//從伺服器端接收傳回資訊
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
Console.WriteLine("ClientGetMessage:{0}/r/n/r/n", recvStr);//顯示伺服器傳回資訊
//s.Close();
}
}
catch (ArgumentNullException ex)
{ Console.WriteLine(ex); }
catch (SocketException ex)
Console.WriteLine("press enter to exit");
Console.ReadLine();