| Server using System.Collections.Generic; Using System.Text; Using System.Net.Sockets; Using System.Net; Namespace Sockettest { Class Program { static void Main (string[] args) { Socket Serversk = new socket (addressfamily.internetwork, SocketType.Stream, protocoltype.tcp); Serversk.bind (New IPEndPoint (Ipaddress.parse ("127.0.0.1"), 8596); Serversk.listen (1); SocketAsyncEventArgs acceptsae = new SocketAsyncEventArgs (); acceptsae.completed + = new eventhandler<socketasynceventargs> (acceptsae_completed); Serversk.acceptasync (ACCEPTSAE); Console.ReadLine (); } static void Acceptsae_completed (object sender, SocketAsyncEventArgs e) { Socket Serversk = sender as socket; if (E. SocketError = = socketerror.success) { Serversk = E.acceptsocket; SocketAsyncEventArgs sendsae = new SocketAsyncEventArgs (); byte[] data = System.Text.Encoding.UTF8.GetBytes ("Ok,just put it!" ); Sendsae.setbuffer (data, 0, data.) Length); sendsae.completed + = new eventhandler<socketasynceventargs> (sendsae_completed); SocketAsyncEventArgs recievesae = new SocketAsyncEventArgs (); byte[] buffer = new byte[2048]; Recievesae.setbuffer (buffer, 0, buffer. Length); recievesae.completed + = new eventhandler<socketasynceventargs> (recievesae_completed); Serversk.receiveasync (RECIEVESAE); Serversk.sendasync (SENDSAE); } Else Console.WriteLine ("Take over collection socket connection request failed!") Specific reasons please debug yourself! "); } static void Recievesae_completed (object sender, SocketAsyncEventArgs e) { Socket SK = sender as socket; byte[] data = E.buffer; Attention here, how to take the value of the buffer that relates to the socket's sending takeover. String msg = System.Text.Encoding.UTF8.GetString (data); Console.WriteLine ("Message Received:" + msg); Sk. Disconnectasync ()//What do you think you should do? } static void Sendsae_completed (object sender, SocketAsyncEventArgs e) { Socket SK = sender as socket; if (E. SocketError = = socketerror.success) { Console.WriteLine (" Send complete! " ), byte[] data = E.buffer; Attention here, how to take the value of the buffer that relates to the socket's sending takeover. String msg = System.Text.Encoding.UTF8.GetString (data); Console.WriteLine ("What You Sent:" + msg); } } } }
|