您的位置:首页 > 理论基础 > 计算机网络

socket编程:简单的TCP客户端

2013-02-21 21:01 387 查看
既然我们已经有了一个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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: