百度首页 | 百度空间
 
查看文章
 
C#即时通讯(2)
2008年06月25日 星期三 22:05
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using System.IO;

namespace TestClient
{
   
public partial class Form1 : Form
    {
       
private TcpClient client;
       
private Thread t;
       
private Socket sock;
       
private bool close = false;

       
public Form1()
        {
            InitializeComponent();
        }

       
// 连接
        private void btnConnect_Click(object sender, EventArgs e)
        {
           
if(client == null)
                client
= new TcpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(txtLoalPort.Text)));

           
if (t == null)
                t
= new Thread(new ThreadStart(ReciverMessage));
            t.IsBackground
= true;
            t.Start();
            btnSend.Enabled
= true;
            btnConnect.Enabled
= false;
        }
       
       
// 接收消息
        private void ReciverMessage()
        {
            client.Connect(IPAddress.Parse(txtSerIP.Text),
int.Parse(txtSerPort.Text));
           
while (true)
            {
               
if (close)
                   
break;
                   
//NetworkStream nws = client.GetStream();
                   
//StreamReader sr = new StreamReader(nws);
                   
//string message = sr.ReadToEnd();
                   
//sr.Close();
                    if(sock == null)
                            sock
= client.Client;
                   
byte[] buff = new byte[100];
                    sock.Receive(buff);
                   
string message = Encoding.Default.GetString(buff);
                   
this.lstMessage.Items.Add(message);               
            }
            Thread.CurrentThread.Abort();
        }

       
// 发送消息
        private void btnSend_Click(object sender, EventArgs e)
        {
           
string message = this.txtInput.Text;
           
byte[] buff = Encoding.Default.GetBytes(message);
            sock.Send(buff);
            txtInput.Text
= "";
        }

       
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            close
= true;
            sock.Close();
        }
    }
}

类别:c# | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu