基于Socket客户端实现
http://tech.ddvip.com 2008年09月08日 社区交流
本文详细介绍基于Socket客户端实现
打开VS2008,在D:C#ch17目录下建立名为SocketClient的Windows应用程序。打开工程,往当前窗体中添加控件,如表17-7所示。
表17-7 添加控件列表
控件名 | Name | Text |
GroupBox | groupBox1 | 向服务器发送消息 |
Label | label1 | 发送消息: |
TextBox | textBox1 | |
Button | button2 | 发送 |
ListBox | lbInfo | |
GroupBox | groupBox1 | 服务器回馈信息 |
客户端的设计主要分为以下步骤。
(1)首先要做的工作还是要引用一些命名空间,如下所示。
using System.IO;
using System.Net.Sockets;
using System.Net;
然后定义一系列的全局变量,如下所示。
private Socket s; //定义Socket对象
public NetworkStream ns; //网络流
public StreamReader sr; //流读取
public StreamWriter sw; //流写入
(2)双击“发送”按钮,添加如下代码。
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serverIP = IPAddress.Parse("222.18.142.171"); //服务器IP
try
{
s.Connect(serverIP, 13); //连接服务器,端口号用13
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
ns = new NetworkStream(s); //实例化网络流
sr = new StreamReader(ns); //实例化流读取对象
sw = new StreamWriter(ns); //实例化写入流对象
sw.WriteLine(textBox1.Text); //将textBox1.Text的数据写入流
sw.Flush(); //清理缓冲区
lbInfo.Items.Add(sr.ReadLine()); //将从流中读取的数据写入lbInfo
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); //捕获异常
}
(3)最后,关闭Socket连接,释放资源,可以直接在窗体的FormClosed事件中进行,如下所示。
s.Shutdown(SocketShutdown.Both);
s.Close();
至此,服务器和客户端已经全部设计完毕,下面看运行效果。
来源:中国自学编程网 作者:佚名 责编:豆豆技术应用