服务器端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketClient
...{
public static void StartClient()
...{
// Data buffer for incoming data. 
byte[] bytes = new byte[1024];
// Connect to a remote device. 
try
...{
// 使用 8088端口 在本机上
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 8088);
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
// 建立TCP连接. Catch any errors. 

try
...{
sender.Connect(remoteEP);
Console.WriteLine("Socket connected to {0}",
sender.RemoteEndPoint.ToString());

byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");

int bytesSent = sender.Send(msg);

int bytesRec = sender.Receive(bytes);
Console.WriteLine("Echoed test = {0}",
Encoding.ASCII.GetString(bytes, 0, bytesRec));
sender.Shutdown(SocketShutdown.Both);
sender.Close();
}
catch (ArgumentNullException ane)
...{
Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
}
catch (SocketException se)
...{
Console.WriteLine("SocketException : {0}", se.ToString());
}
catch (Exception e)
...{
Console.WriteLine("Unexpected exception : {0}", e.ToString());
}
}
catch (Exception e)
...{
Console.WriteLine(e.ToString());
}
}
public static int Main(String[] args)
...{
StartClient();
return 0;
}
}

客户端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketListener
...{
public static string data = null;
public static void StartListening()
...{

byte[] bytes = new Byte[1024];
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8088);

Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
try
...{
listener.Bind(localEndPoint);
listener.Listen(10);

while (true)
...{
Console.WriteLine("Waiting for a connection...");
Socket handler = listener.Accept();
data = null;

while (true)
...{
bytes = new byte[1024];
int bytesRec = handler.Receive(bytes);
data += Encoding.ASCII.GetString(bytes, 0, bytesRec);
if (data.IndexOf("<EOF>") > -1)
...{
break;
}
}

Console.WriteLine("Text received : {0}", data);
byte[] msg = Encoding.ASCII.GetBytes(data);
handler.Send(msg);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
catch (Exception e)
...{
Console.WriteLine(e.ToString());
}
Console.WriteLine(" Press ENTER to continue...");
Console.Read();
}
public static int Main(String[] args)
...{
StartListening();
return 0;
}
}
3058

被折叠的 条评论
为什么被折叠?



