现在的位置: 首页 > 综合 > 正文

socket编程的小例子

2011年07月17日 ⁄ 综合 ⁄ 共 5561字 ⁄ 字号 评论关闭
服务器端代码:(为一个控制台程序)
  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Text;
  7using System.Windows.Forms;
  8using System.Net;
  9using System.Net.Sockets;
 10using System.IO;
 11using System.Collections;
 12
 13namespace Clienttest
 14{
 15    public partial class Form1 : Form
 16    {
 17        private NetworkStream networkstream;
 18        private StreamReader streamreader;
 19        private StreamWriter streamwriter;
 20        TcpClient myclient;
 21        ArrayList sb;
 22        public bool flag = false;
 23        public Form1()
 24        {
 25            sb = new ArrayList();
 26            InitializeComponent();
 27            if (!flag)
 28                this.Connect();
 29            networkstream = myclient.GetStream();
 30            streamreader = new StreamReader(networkstream);
 31            streamwriter = new StreamWriter(networkstream);
 32            this.ShowMessage();
 33
 34
 35        }

 36        protected void Connect()
 37        {
 38            try
 39            
 40                sb.Add ("Connecting to server");
 41                myclient = new TcpClient("localhost",1234);
 42                sb.Add ("Connected,please type something in the textbox");
 43            }

 44            catch
 45            {
 46                sb.Add(string.Format ("Failed to connect the {0}:1234","localhost"));
 47
 48            }

 49            flag = true;
 50
 51
 52        }

 53        protected void ShowMessage()
 54        {
 55            for (int i = 0; i < sb.Count; i++)
 56            {
 57                t2.Items.Add (((object)sb[i].ToString ()));
 58            }

 59            sb.Clear();
 60        }

 61
 62        private void t1_TextChanged(object sender, EventArgs e)
 63        {
 64            if (t1.Text == "")
 65                bts.Enabled = false;
 66            else
 67                bts.Enabled = true;
 68        }

 69
 70        private void bts_Click(object sender, EventArgs e)
 71        {
 72            if (t1.Text == "")
 73            {
 74                sb.Add("Please enter something in the textbox.");
 75                t1.Focus();
 76                return;
 77            }

 78            string s;
 79            try
 80            {
 81                streamwriter.WriteLine(t1.Text.ToString());
 82                Console.WriteLine("Sending Message");
 83                streamwriter.Flush();
 84                s = streamreader.ReadLine();
 85                Console.WriteLine("Reading Message");
 86                Console.WriteLine(s);
 87                sb.Add(s);
 88                t1.Text = "";
 89                t1.Focus();
 90                this.ShowMessage();
 91            }

 92            catch 
 93            {
 94                MessageBox.Show("错误""提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
 95            }

 96
 97        }

 98
 99
100    }

101}
 
102
103

客户端代码:(WinForm程序)

在窗体上加入一个Textbox(name:t1),一个Listbox(name:t2), 一个Button(name:bts)

然后在窗体代码面中加入下面代码:

  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Text;
  7using System.Windows.Forms;
  8using System.Net;
  9using System.Net.Sockets;
 10using System.IO;
 11using System.Collections;
 12
 13namespace Clienttest
 14{
 15    public partial class Form1 : Form
 16    {
 17        private NetworkStream networkstream;
 18        private StreamReader streamreader;
 19        private StreamWriter streamwriter;
 20        TcpClient myclient;
 21        ArrayList sb;
 22        public bool flag = false;
 23        public Form1()
 24        {
 25            sb = new ArrayList();
 26            InitializeComponent();
 27            if (!flag)
 28                this.Connect();
 29            networkstream = myclient.GetStream();
 30            streamreader = new StreamReader(networkstream);
 31            streamwriter = new StreamWriter(networkstream);
 32            this.ShowMessage();
 33
 34
 35        }

 36        protected void Connect()
 37        {
 38            try
 39            
 40                sb.Add ("Connecting to server");
 41                myclient = new TcpClient("localhost",1234);
 42                sb.Add ("Connected,please type something in the textbox");
 43            }

 44            catch
 45            {
 46                sb.Add(string.Format ("Failed to connect the {0}:1234","localhost"));
 47
 48            }

 49            flag = true;
 50
 51
 52        }

 53        protected void ShowMessage()
 54        {
 55            for (int i = 0; i < sb.Count; i++)
 56            {
 57                t2.Items.Add (((object)sb[i].ToString ()));
 58            }

 59            sb.Clear();
 60        }

 61
 62        private void t1_TextChanged(object sender, EventArgs e)
 63        {
 64            if (t1.Text == "")
 65                bts.Enabled = false;
 66            else
 67                bts.Enabled = true;
 68        }

 69
 70        private void bts_Click(object sender, EventArgs e)
 71        {
 72            if (t1.Text == "")
 73            {
 74                sb.Add("Please enter something in the textbox.");
 75                t1.Focus();
 76                return;
 77            }

 78            string s;
 79            try
 80            {
 81                streamwriter.WriteLine(t1.Text.ToString());
 82                Console.WriteLine("Sending Message");
 83                streamwriter.Flush();
 84                s = streamreader.ReadLine();
 85                Console.WriteLine("Reading Message");
 86                Console.WriteLine(s);
 87                sb.Add(s);
 88                t1.Text = ""

抱歉!评论已关闭.