22
|
1 using System;
|
|
2 using System.Net;
|
|
3 using System.Net.Sockets;
|
|
4 using System.Threading;
|
|
5 using System.Threading.Tasks;
|
|
6
|
|
7
|
|
8 public class SocketListenerTask {
|
|
9 Socket socket;
|
|
10
|
|
11 public SocketListenerTask (Socket socket) {
|
|
12 this.socket = socket;
|
|
13 }
|
|
14
|
|
15 public void Run () {
|
|
16 // Thread thread = new Thread (new ThreadStart (MethodThread));
|
|
17 // thread.Start();
|
23
|
18 Task task = Task.Run(() => MethodThread());
|
22
|
19 }
|
|
20
|
|
21 private void MethodThread() {
|
|
22 Socket listener = socket.Accept ();
|
|
23 while (true) {
|
|
24 Console.WriteLine ("Accept:" + listener.LocalEndPoint);
|
|
25 Thread.Sleep(1000);
|
|
26 }
|
|
27 }
|
|
28
|
|
29 public static void Main () {
|
|
30 IPHostEntry host = Dns.GetHostEntry ("localhost");
|
|
31 IPAddress ipAddress = host.AddressList[0];
|
|
32 IPEndPoint localEndPoint = new IPEndPoint (ipAddress, 11000);
|
|
33
|
|
34 try {
|
|
35 Socket ss = new Socket (ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
|
36 ss.Bind(localEndPoint);
|
|
37 ss.Listen(10);
|
|
38
|
|
39 // while (true) {
|
|
40 // Console.WriteLine("Accept:" + listener.LocalEndPoint);
|
|
41 // }
|
|
42
|
|
43 SocketListenerThread newThread = new SocketListenerThread (ss);
|
|
44 newThread.Run ();
|
|
45
|
|
46 // Console.WriteLine("fin");
|
|
47 // listener.Shutdown(SocketShutdown.Both);
|
|
48 // listener.Close();
|
|
49 } catch (Exception e) {
|
|
50 Console.WriteLine (e.ToString ());
|
|
51 }
|
|
52
|
|
53 }
|
|
54 }
|