程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 簡單的C# Socket編程(2)

簡單的C# Socket編程(2)

編輯:關於C語言

ClIEnt,客戶端程序,在文本框中輸入字符,將在列表框顯示。

1using System;
 2using System.Text;
 3using System.Drawing;
 4using System.Collections;
 5using System.ComponentModel;
 6using System.Windows.Forms;
 7using System.Net;
 8using System.Net.Sockets;
 9using System.IO;
10
11namespace SocketSample
12{
13  public class Sample : System.Windows.Forms.Form
14  {
15    private System.Windows.Forms.Button btS;
16    private System.Windows.Forms.TextBox t1;
17    private NetworkStream networkStream ;
18    private StreamReader streamReader ;
19    private StreamWriter streamWriter ;
20    ArrayList sb;
21    TcpClient myclIEnt;
22    bool flag=false;
23    private System.Windows.Forms.ListBox t2;
24
25    private System.ComponentModel.Container components = null;
26
27    public Sample()
28    {
29      sb = new ArrayList();
30      InitializeComponent();
31      if(!flag)
32        Connect();
33
34      //get a Network stream from the server
35      networkStream = myclIEnt.GetStream();
36      streamReader = new StreamReader(networkStream);
37      streamWriter = new StreamWriter(networkStream);
38      ShowMessage();
39    }
40
41    protected override void Dispose( bool disposing )
42    {
43      if( disposing )
44      {
45        if(components != null)
46        {
47          components.Dispose();
48        }
49      }
50      base.Dispose( disposing );
51    }
52
53    Windows 窗體設計器生成的代碼#region Windows 窗體設計器生成的代碼
54    /**//// <summary>
55    /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
56    /// 此方法的內容。
57    /// </summary>
58    private void InitializeComponent()
59    {
60      System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Sample));
61      this.t1 = new System.Windows.Forms.TextBox();
62      this.btS = new System.Windows.Forms.Button();
63      this.t2 = new System.Windows.Forms.ListBox();
64      this.SuspendLayout();
65      //
66      // t1
67      //
68      this.t1.Location = new System.Drawing.Point(24, 32);
69      this.t1.Name = "t1";
70      this.t1.Size = new System.Drawing.Size(280, 21);
71      this.t1.TabIndex = 0;
72      this.t1.Text = "";
73      this.t1.TextChanged += new System.EventHandler(this.t1_TextChanged);
74      //
75      // btS
76      //
77      this.btS.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btS.BackgroundImage")));
78      this.btS.Enabled = false;
79      this.btS.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
80      this.btS.Location = new System.Drawing.Point(320, 32);
81      this.btS.Name = "btS";
82      this.btS.TabIndex = 1;
83      this.btS.Text = "Send";
84      this.btS.Click += new System.EventHandler(this.btS_Click);
85      //
86      // t2
87      //
88      this.t2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
89      this.t2.Font = new System.Drawing.Font("CourIEr New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
90      this.t2.ItemHeight = 15;
91      this.t2.Location = new System.Drawing.Point(24, 64);
92      this.t2.Name = "t2";
93      this.t2.Size = new System.Drawing.Size(368, 212);
94      this.t2.TabIndex = 2;
95      //
96      // Sample
97      //
98      this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
99      this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
100      this.ClIEntSize = new System.Drawing.Size(416, 297);
101      this.Controls.Add(this.t2);
102      this.Controls.Add(this.btS);
103      this.Controls.Add(this.t1);
104      this.Name = "Sample";
105      this.Text = "Sample";
106      this.ResumeLayout(false);
107
108    }
109    #endregion
110
111    public static void Main()
112    {
113      Sample df=new Sample();
114      df.FormBorderStyle=FormBorderStyle.Fixed3D;
115      Application.Run(df);
116    }
117
118    protected void Connect()
119    {
120      //connect to the "localhost" at the give port
121      //if you have some other server name then you can use that instead of "localhost"
122  
123      try
124      {
125        sb.Add("Conneting to Server");
126        myclient = new TcpClIEnt("localhost", 1234);
127        sb.Add("Conneted,Please enter something in the textbox");
128      }
129      catch
130      {
131        sb.Add(string.Format("Failed to connect to server at {0}:1234", "localhost"));
132      }
133      flag = true;
134    }
135
136    protected void ShowMessage()
137    {
138      for(int i=0;i<sb.Count;i++)
139      {
140        t2.Items.Add((object)sb[i].ToString());
141      }
142      sb.Clear();
143    }
144
145    private void t1_TextChanged(object sender, System.EventArgs e)
146    {
147      if(t1.Text == "" )
148        btS.Enabled = false;
149      else
150        btS.Enabled=true;
151    }
152
153    private void btS_Click(object sender, System.EventArgs e)
154    {
155      if(t1.Text=="")
156      {
157        sb.Add( "Please enter something in the textbox.");
158        t1.Focus();
159        return ;
160      }
161      string s;
162      try
163      {
164        streamWriter.WriteLine(t1.Text);
165        Console.WriteLine("Sending Message");
166        streamWriter.Flush();
167        s= streamReader.ReadLine();
168        Console.WriteLine("Reading Message") ;
169        Console.WriteLine(s) ;
170        sb.Add(s);
171        t1.Text = "";
172        t1.Focus();
173        ShowMessage();
174      }
175      catch
176      {
177        MessageBox.Show("Error.");
178      }
179    }
180  }
181}
182

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved