当前位置:首页 > Socket网络编程学习笔记(3):利用套接字助手类
40 41 }
通过NetworkStream ns = s.GetStream();可以获取网络流对象,以此来发送和接收信息。
二、客户端连接
1、创建套接字并连接到服务器
1 //创建一个套接字
2 IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(\ 3 //clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
4 clientTcp = new TcpClient(); 5
6 //将套接字与远程服务器地址相连 7 try 8
{
9 //clientSocket.Connect(ipep); 10 clientTcp.Connect(ipep); 11 }
12 catch (SocketException ex) 13
{
14 MessageBox.Show(\
15 return; 16 }
2、接收服务器发送的信息
1ns = clientTcp.GetStream(); 2 while (true) 3
{
4 //接收服务器信息 5 int bufLen = 0; 6 try 7
{
8 //bufLen = clientSocket.Available; 9 bufLen = clientTcp.Available; 10
11 //clientSocket.Receive(data, 0, bufLen, SocketFlags.None); 12 ns.Read(data, 0, bufLen); 13 if (bufLen == 0) 14
{
15 continue; 16 } 17 }
18 catch (Exception ex) 19
{
20 MessageBox.Show(\
21 return; 22 } 23
24 string clientcommand = System.Text.Encoding.ASCII.GetString(data).Substring(0, bufLen); 25
26 lstClient.Items.Add(clientcommand); 27 28 }
同服务端,通过ns = clientTcp.GetStream();获取网络流来读取服务端发过来的信息。
3、向服务端发送信息
1//向服务器发送信息 2
3 byte[] data = new byte[1024];
4 data = Encoding.ASCII.GetBytes(txtClient.Text);
5 //clientSocket.Send(data, data.Length, SocketFlags.None); 6 ns.Write(data, 0, data.Length);
到这里,我们就可以实现客户端与服务端的连接和通讯了。一些方法跟上一篇提到的类似,这里就不再详述。
接下来,我会讲一下关于Socket发送的消息边界处理问题、发送实体类数据问题以及
利用线程池来改善线程创建和分配问题。
源码下载:/Files/licongjie/SocketTest1.rar
李.net
关注 - 1 粉丝 - 10
关注博主
2 0
(请您对文章做出评价)
? 上一篇:Socket网络编程学习笔记(2):面向连接的Socket ? 下一篇:Socket网络编程学习笔记(4):TCP消息边界处理
共分享92篇相关文档