1
using
System;
2 using System.Text;
3 using System.Net;
4 using System.Net.Sockets;
5 namespace asyncSocketClient {
6 class SocketClient {
7 static System.Threading.ManualResetEvent allDone = new System.Threading.ManualResetEvent( false );
8 [STAThread]
9 static void Main( string [] args) {
10 SocketClient.Connect();
11
12 }
13 // 连接方法
14 public static void Connect() {
15 IPAddress ip = IPAddress.Parse( " 10.0.0.153 " );
16 IPEndPoint ipEP = new IPEndPoint(ip, 11000 );
17 Socket client = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
18 client.BeginConnect(ipEP, new AsyncCallback(SocketClient.ConnectCallback),client);
19 allDone.WaitOne();
20 }
21 // 异步连接
22 public static void ConnectCallback(System.IAsyncResult ar) {
23 try {
24 Socket client = (Socket)ar.AsyncState;
25 client.EndConnect(ar);
26 Console.WriteLine( " Socket connected to {0} " ,client.RemoteEndPoint.ToString());
27 Console.WriteLine( " Press any key to send date to remote server " );
28 Console.ReadLine();
29 SocketClient.Send(client, " abc123 " );
30 }
31 catch (Exception ex) {
32 Console.WriteLine(ex.Message);
33 }
34 }
35 // 发送数据的方法
36 public static void Send(Socket client, string data) {
37 byte [] byteData = System.Text.Encoding.ASCII.GetBytes(data);
38 client.BeginSend(byteData, 0 ,byteData.Length, 0 , new AsyncCallback(SocketClient.SendCallback),client);
39 }
40 // 异步发送方法
41 public static void SendCallback(System.IAsyncResult ar) {
42 try {
43 Socket client = (Socket)ar.AsyncState;
44 int bytesSend = client.EndSend(ar);
45 Console.WriteLine( " Send {0} bytes to server. " ,bytesSend);
46 }
47 catch (Exception ex) {
48 Console.WriteLine(ex.Message);
49 }
50 allDone.Set();
51 }
52
53 // 异步接收与服务端异步接收一样.同理,服务端异常发送与客户端异步发送一样.
54 }
55 }
56
2 using System.Text;
3 using System.Net;
4 using System.Net.Sockets;
5 namespace asyncSocketClient {
6 class SocketClient {
7 static System.Threading.ManualResetEvent allDone = new System.Threading.ManualResetEvent( false );
8 [STAThread]
9 static void Main( string [] args) {
10 SocketClient.Connect();
11
12 }
13 // 连接方法
14 public static void Connect() {
15 IPAddress ip = IPAddress.Parse( " 10.0.0.153 " );
16 IPEndPoint ipEP = new IPEndPoint(ip, 11000 );
17 Socket client = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
18 client.BeginConnect(ipEP, new AsyncCallback(SocketClient.ConnectCallback),client);
19 allDone.WaitOne();
20 }
21 // 异步连接
22 public static void ConnectCallback(System.IAsyncResult ar) {
23 try {
24 Socket client = (Socket)ar.AsyncState;
25 client.EndConnect(ar);
26 Console.WriteLine( " Socket connected to {0} " ,client.RemoteEndPoint.ToString());
27 Console.WriteLine( " Press any key to send date to remote server " );
28 Console.ReadLine();
29 SocketClient.Send(client, " abc123 " );
30 }
31 catch (Exception ex) {
32 Console.WriteLine(ex.Message);
33 }
34 }
35 // 发送数据的方法
36 public static void Send(Socket client, string data) {
37 byte [] byteData = System.Text.Encoding.ASCII.GetBytes(data);
38 client.BeginSend(byteData, 0 ,byteData.Length, 0 , new AsyncCallback(SocketClient.SendCallback),client);
39 }
40 // 异步发送方法
41 public static void SendCallback(System.IAsyncResult ar) {
42 try {
43 Socket client = (Socket)ar.AsyncState;
44 int bytesSend = client.EndSend(ar);
45 Console.WriteLine( " Send {0} bytes to server. " ,bytesSend);
46 }
47 catch (Exception ex) {
48 Console.WriteLine(ex.Message);
49 }
50 allDone.Set();
51 }
52
53 // 异步接收与服务端异步接收一样.同理,服务端异常发送与客户端异步发送一样.
54 }
55 }
56