* AllTests.cs: Fixed Lawrence's e-mail address.
[mono.git] / mcs / class / System / Test / System.Net.Sockets / TcpClientTest.cs
1 // System.Net.Sockets.TcpClientTest.cs\r
2 //\r
3 // Author:\r
4 //    Phillip Pearson (pp@myelin.co.nz)\r
5 //\r
6 // Copyright (C) 2001, Phillip Pearson\r
7 //    http://www.myelin.co.nz\r
8 //\r
9 \r
10 using System;\r
11 using System.Net;\r
12 using System.Net.Sockets;\r
13 using NUnit.Framework;\r
14 \r
15 namespace MonoTests.System.Net.Sockets {\r
16 \r
17         /// <summary>\r
18         /// Tests System.Net.Sockets.TcpClient\r
19         /// </summary>\r
20         public class TcpClientTest : TestCase {\r
21                 \r
22                 public TcpClientTest(string name) : base(name) {}\r
23                 \r
24                 public static ITest Suite {\r
25                         get {\r
26                                 return new TestSuite(typeof (TcpClientTest));\r
27                         }\r
28                 }\r
29 \r
30                 /// <summary>\r
31                 /// Tests the TcpClient object\r
32                 /// (from System.Net.Sockets)\r
33                 /// </summary>\r
34                 public void test_TcpClient()\r
35                 {\r
36                         // set up a listening Socket\r
37                         Socket lSock = new Socket(AddressFamily.InterNetwork,\r
38                                 SocketType.Stream, ProtocolType.Tcp);\r
39                         \r
40                         lSock.Bind(new IPEndPoint(IPAddress.Any, 1234));\r
41                         lSock.Listen(-1);\r
42 \r
43 \r
44                         // connect to it with a TcpClient\r
45                         TcpClient outClient = new TcpClient("localhost", 1234);\r
46                         Socket inSock = lSock.Accept();\r
47 \r
48                         \r
49                         // now try exchanging data\r
50                         NetworkStream stream = outClient.GetStream();\r
51 \r
52                         const int len = 1024;\r
53                         byte[] outBuf = new Byte[len];\r
54                         for (int i=0; i<len; i++) \r
55                         {\r
56                                 outBuf[i] = (byte)(i % 256);\r
57                         }\r
58 \r
59                         // send it\r
60                         stream.Write(outBuf,0,len);\r
61 \r
62                         // and see if it comes back\r
63                         byte[] inBuf = new Byte[len];\r
64                         int ret = inSock.Receive(inBuf, 0, len, 0);\r
65                         Assert(ret != 0);\r
66 \r
67                         for (int i=0; i<len; i++) \r
68                         {\r
69                                 Assert(inBuf[i] == outBuf[i]);\r
70                         }\r
71                         \r
72 \r
73                         // tidy up\r
74                         inSock.Close();\r
75                         outClient.Close();\r
76                         lSock.Close();\r
77                         \r
78                 }       \r
79                 \r
80         }\r
81 \r
82 }\r