2007-03-21

C#实现Socket传输简单数据

来源: 本站收集整理 作者:佚名 评论 0 条
  运行程序后, 先要点击开始接收按钮后才能点击发送数据

Form1.cs代码如下

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.IO;
using System.Net;

namespace WinSocket
...{
public partial class Form1 : Form
...{
BackgroundWorker bgWorker = null;
public Form1()
...{
InitializeComponent();
bgWorker = new BackgroundWorker();
bgWorker.WorkerSupportsCancellation = true;
this.AddEvent();
}

/**//// <summary>
/// 注册事件
/// </summary>
private void AddEvent()
...{
this.bgWorker.DoWork = new DoWorkEventHandler(bgWorker_DoWork);
this.btnSend.Click = new EventHandler(btnSend_Click);
this.btnStartReceive.Click = new EventHandler(btnStartReceive_Click);
this.btnStopRecevie.Click = new EventHandler(btnStopRecevie_Click);
}

void bgWorker_DoWork(object sender, DoWorkEventArgs e)
...{
Socket receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(0, 8000);

receiveSocket.Bind(endpoint);
receiveSocket.Listen(10);


try
...{
while (true)
...{
Socket tmpSocket = receiveSocket.Accept();
byte[] buffer = new byte[tmpSocket.ReceiveBufferSize];
if (tmpSocket.Receive(buffer) > 0)
...{
textBox2.Text = Encoding.UTF8.GetString(buffer) Environment.NewLine;
}
else
...{
System.Threading.Thread.Sleep(1000);
}

}
}
catch(Exception err)
...{
MessageBox.Show(err.Message);
}
}

void btnStopRecevie_Click(object sender, EventArgs e)
...{
if (this.bgWorker.IsBusy)
...{
this.bgWorker.CancelAsync();
this.btnStartReceive.Enabled = true;
this.btnStopRecevie.Enabled = false;
}
}

void btnStartReceive_Click(object sender, EventArgs e)
...{
this.btnStartReceive.Enabled = false;
this.bgWorker.RunWorkerAsync();
this.btnStopRecevie.Enabled = true;
共3页: 上一页 1 [2] [3] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:jsp中的数据库编程  
下一篇:JSP MySQL 无法插入中文问题(Data too long ...)
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号