- 论坛徽章:
- 0
|
综合运用以上阐述的使用Visual C#进行Socket网络程序开发的知识,下面的程序是一个简单的Socket通讯实例,client向server发送一段测试字符串,server接收并显示出来,给予client成功相应。\r\n\r\n//client端\r\nusing System;\r\nusing System.Text;\r\nusing System.IO;\r\nusing System.net;\r\nusing System.Net.Sockets; \r\nnamespace socketsample\r\n{\r\n class Class1\r\n {\r\n static void Main()\r\n {\r\n try\r\n {\r\n int port = 2000;\r\n string host = \"127.0.0.1\";\r\n IPAddress ip = IPAddress.Parse(host);\r\n IPEndPoint ipe = new IPEndPoint(ip, port);\r\n Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);\r\n c.Connect(ipe);\r\n string sendStr = \"hello!This is a socket test\";\r\n byte[] bs = Encoding.ASCII.GetBytes(sendStr);\r\n c.Send(bs, bs.Length, 0);\r\n string recvStr = \"\";\r\n byte[] recVBytes = new byte[1024];\r\n int bytes;\r\n bytes = c.Receive(recvBytes, recvBytes.Length, 0);\r\n recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);\r\n Console.WriteLine(recvStr);\r\n c.Close();\r\n }\r\n catch (ArgumentNullException e)\r\n {\r\n Console.WriteLine(\"ArgumentNullException: {0}\", e);\r\n }\r\n catch (SocketException e)\r\n {\r\n Console.WriteLine(\"SocketException: {0}\", e);\r\n }\r\n Console.ReadLine();\r\n }\r\n }\r\n}\r\n//server端\r\nusing System;\r\nusing System.Text;\r\nusing System.IO;\r\nusing System.Net;\r\nusing System.Net.Sockets;\r\nnamespace Project1\r\n{\r\n class Class2\r\n {\r\n static void Main()\r\n {\r\n try\r\n {\r\n int port = 2000;\r\n string host = \"127.0.0.1\";\r\n IPAddress ip = IPAddress.Parse(host);\r\n IPEndPoint ipe = new IPEndPoint(ip, port);\r\n Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);\r\n s.Bind(ipe);\r\n s.Listen(0);\r\n Socket temp = s.Accept();\r\n string recvStr = \"\";\r\n byte[] recvBytes = new byte[1024];\r\n int bytes;\r\n bytes = temp.Receive(recvBytes, recvBytes.Length, 0);\r\n recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);\r\n Console.WriteLine(recvStr);\r\n string sendStr = \"Ok!Sucess!\";\r\n byte[] bs = Encoding.ASCII.GetBytes(sendStr);\r\n temp.Send(bs, bs.Length, 0);\r\n temp.Shutdown(SocketShutdown.Both);\r\n temp.Close();\r\n s.Shutdown(SocketShutdown.Both);\r\n s.Close();\r\n }\r\n catch (ArgumentNullException e)\r\n {\r\n Console.WriteLine(\"ArgumentNullException: {0}\", e);\r\n }\r\n catch (SocketException e)\r\n {\r\n Console.WriteLine(\"SocketException: {0}\", e);\r\n }\r\n Console.ReadLine();\r\n }\r\n }\r\n} \r\n\r\n 以上程序在VS Express 2005 .Net2.0环境下测试通过。 |
|