socket编程:简单的TCP客户端

既然我们已经有了一个TCP服务器,因此可以创建 一个简单的TCP客户机与它进行通信。创建与TCP服务器相连 的客户机只有两 步
1.创建一个套接字
2.将套接字与远程服务竭地址相连

创建客户机如同服务器编辑一样,进行客户机程序设计的第 一步是创建一个Socket对象.SocketConnect()使用这个Socket对象将所创建的套接字与远程主机相连:这个例子试图将套接字与位于IP地址为192.168.0.106的机器上的服务器相连.当然也可以与Dns.Resolve()一样使用主机名。也许可能注意到在服务器的编程中,没有使用任何异常处理方法,在客户端的程序设计中,就不能这样了.对于客户机的Connect()来说,最大的挑战就是如果远程服务器不能使用,将会产生异常情况,对于顾客来说将导致错误消息.解决这个问题较好的方法是在使用Connect()方法时用try-catch块来获取SocketExceptions,从而可以为顾客提供非常友好的提示.一旦远程的服务器TCP程序接收到连接请求,客户机程序就准备使用标准的Send()和Receive()方法同服务器传送数据.

 static void Main(string[] args)
        {
            int recv;
            byte[] data = new byte[1024];
            string input, strData;
            Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint ipServer=new IPEndPoint(IPAddress.Parse("127.0.0.1"),19050);
            try
            {
                socketClient.Connect(ipServer);
            }
            catch (Exception ex)
            {
                Console.WriteLine("can not connect server");
                Console.WriteLine(ex.ToString());
                return;
            }
            recv = socketClient.Receive(data);
            strData = Encoding.Default.GetString(data, 0, recv);
            Console.WriteLine(strData);
            while (true)
            {
                input = Console.ReadLine();
                if (input == "exit")
                    break;
                socketClient.Send(Encoding.Default.GetBytes(input));
                data = new byte[1024];
                recv = socketClient.Receive(data);
                strData = Encoding.Default.GetString(data, 0, recv);
                Console.WriteLine(strData);
            }
            Console.WriteLine("Disconnecting from server......");
            socketClient.Shutdown(SocketShutdown.Both);
            socketClient.Close();

        }
原文地址:https://www.cnblogs.com/lqsilly/p/2921281.html