using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
BackgroundWorker bgWorker = null;
public Form1()
{
InitializeComponent();
bgWorker = new BackgroundWorker();
bgWorker.WorkerSupportsCancellation = true;
this.bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
}
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
this.btnStartReceive.Enabled = true;
this.btnStopReceive.Enabled = false;
}
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);
}
}
private void btnSend_Click_1(object sender, EventArgs e)
{
Socket sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sendSocket.Connect("192.168.1.7", 8000);
byte[] buffer = Encoding.UTF8.GetBytes(textBox1.Text);
sendSocket.Send(buffer);
sendSocket.Shutdown(SocketShutdown.Both);
sendSocket.Close();
}
private void btnStartReceive_Click_1(object sender, EventArgs e)
{
this.btnStartReceive.Enabled = false;
this.bgWorker.RunWorkerAsync();
this.btnStopReceive.Enabled = true;
}
private void btnStopReceive_Click(object sender, EventArgs e)
{
if (this.bgWorker.IsBusy)
{
this.bgWorker.CancelAsync();
this.btnStartReceive.Enabled = true;
this.btnStopReceive.Enabled = false;
}
}
}
}