C# 以流方式讀socket超時設置的簡單實例


 1 using System;
 2 using System.IO;
 3 using System.Net;
 4 using System.Text;
 5 using System.Net.Sockets;
 6 
 7 public class client 
 8 {
 9     public static void Main() 
10     {
11         try 
12         {
13             // 新建客戶端套接字
14 TcpClient tcpclnt = new TcpClient();
15 Console.WriteLine("連接.....");
16             // 連接服務器
17             tcpclnt.ReceiveTimeout = 3000;//設置Socket的接收超時時間為3S。
18 tcpclnt.Connect("127.0.0.1",8001);
19 Console.WriteLine("已連接");
20 Console.Write("請輸入要傳輸的字符串 : ");
21             // 讀入字符串
22 String str=Console.ReadLine();
23 
24             // 得到客戶端的流
25 Stream stm = tcpclnt.GetStream();
26             // 發送字符串
27 ASCIIEncoding asen= new ASCIIEncoding();
28 byte[] ba=asen.GetBytes(str);
29 Console.WriteLine("傳輸中.....");
30 stm.Write(ba,0,ba.Length);
31             // 接收從服務器返回的信息
32 byte[] bb=new byte[100];
33 int k=stm.Read(bb,0,100);   //3秒后會出現超時異常
34             // 輸出服務器返回信息
35             for (int i=0;i
36             {
37                 Console.Write(Convert.ToChar(bb[i]));
38             }
39             // 關閉客戶端連接
40 tcpclnt.Close();
41 }
42 catch (Exception e) 
43         {
44 Console.WriteLine("Error..... " + e.StackTrace);
45 }
46 }
47 }

 

============================================================

TCPListener類用於監聽客戶端連接請求,TCPClient類用於提供本地主機和
遠程主機的連接信息。
兩個類都位於 System.Net.Socckets命名空間下
TCPListener類常用的放方法。
方法                  說明
AcceptSocket       從端口處接收一個連接並賦予它Socket對象
AcceptTcpClient    從端口處接收一個連接並賦予它TCPClient對象
Equals             判斷兩個TcpListener對象是否相等
GetType            獲取當前實例的類型
Pending            確定是否有掛起的連接請求
Start              開始接聽傳入的連接請求
Stop               關閉監聽器
ToString           創建TcpListener對象的字符串表示

所以我們在用TcpListener監聽port時,一旦連接建立,也可以從tcplisener.acceptTcpclient得到一個tcpclient對象,對數據的讀寫就可以設置超時了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM