11. • Silverlight for Windows Phone
SocketAsyncEventArgs eargs = new SocketAsyncEventArgs();
eargs.RemoteEndPoint = remoteEndPoint;
eargs.Completed +=
new EventHandler<SocketAsyncEventArgs>(ConnectCompleted);
m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp); EventArgs
if (!m_socket.ConnectAsync(eargs))
{
//
ConnectCompleted(m_socket, eargs);
}
⾃自
12. • .NET Framework
m_stream = new NetworkStream(socket);
m_reader = new StreamReader(m_stream, this.Encoding);
while (true)
{
string line =m_reader.ReadLine();
-- --
}
NetworkStream
StreamReader 1 ⾏行行
13. • Silverlight for Windows Phone
m_receiveBuffer = new byte[2048];
SocketAsyncEventArgs e = new SocketAsyncEventArgs();
e.SetBuffer(m_receiveBuffer, 0, m_receiveBuffer.Length);
e.Completed +=
new EventHandler<SocketAsyncEventArgs>(ReceiveCompleted);
m_socket.ReceiveAsync(e);
⾃自
14. • Silverlight for Windows Phone
void ReceiveCompleted(object sender, SocketAsyncEventArgs e)
{
if (e.SocketError == SocketError.Success)
{
if (e.BytesTransferred > 0)
{ ⾃自
// snip ⾃自
}
if (!m_sendLoopStop)
Receive();
⾃自 BeginReceive
}
else
{
ProcessSocketError(e.SocketError);
}
}