Fungsi SOCKET:
public static ManualResetEvent ConnectDone = new ManualResetEvent(false);
public static void ConnectCallback(IAsyncResult ar)
{
Socket sClient = (Socket)ar.AsyncState;
klien.EndConnect(ar);
Console.WriteLine("Soket terhubung ke {0}", sClient.RemoteEndPoint.ToString());
HubungkanSelesai.Set();
}
public static void Utama(string[] arg)
{
coba
{
IPHostEntry ipHost = Dns.Resolve("127.0.0.1");
Alamat IP ipAddr = ipHost.Daftar Alamat[0];
IPEndPoint endPoint = IPEndPoint baru(ipAddr, 11000);
Socket sClient = Socket baru(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
sClient.BeginConnect(endPoint, AsyncCallback baru(ConnectCallback),
sClient);
for (int i = 0; i <5; i++)
Console.WriteLine("Lakukan Pekerjaan Lain.");
byte[] byteData = Pengkodean.ASCII.GetBytes("Beberapa Data.");
ConnectDone.TungguSatu();
sClient.BeginSend(byteData, 0, byteData.Length, 0,
AsyncCallback baru(SendCallback), sClient);
………
}
(注:ManualResetEvent 允许线程通过发信号互相通信。通常)信涉及一个线程在其他线程进行之前必须完成的任务。
ManualResetEvent就像一个信号灯可以利用它的信号来通知其它线程。它有几个重要Fungsi :Reset(),Set(),WaitOne() dan sebagainya.以后ﯥ对象将保持原来的状态不变直到它Reset() adalah fitur Set() untuk mengatur ulang, Reset() untuk mengatur ulang fungsi Set() untuk mengatur ulang fungsi Set() untuk WaitOne() untuk fungsi WaitOne() Bagaimana cara menggunakan ManualResetEvent pada ManualResetEvent?信号状态,此时该线程将被激活。)
Koneksi ConnectDone.WaitOne(); dan koneksi ConnectDone.WaitOne(); ,MenghubungkanConnectDone.Set() ke perangkat lunak lainnya Gunakan ManualResetEvent.WaitOne() untuk mengaktifkan fitur ManualResetEvent.WaitOne()工作。
同步与异步:
简单地说,同步即程序执行一个方法,等该方法返回之后,继续往下走,
异步:即程“宏观”而言,主线程与方法线程并行执行
Untuk (int i = 0; i <5; i++)
Console.WriteLine
(
"Lakukan Yang Lain Bekerja.");
byte[] byteData = Encoding.ASCII.GetBytes("Some Data.");
如果调用的是同步方法,那么,输出“Soket terhubung ke…”一定会在“Lakukan Pekerjaan Lain.”之前,因为主线程必须“Lakukan Pekerjaan Lain.”之间的某个时刻出现 “Soket terhubung ke…”的输出(实际情况还依赖于操作系统的线程
Aplikasi sClient.BeginSend(…) dapat digunakan di ConnectDone.WaitOne(), dan aplikasi lainnya adalah ConnectCallback ,须得同步一下
。