最简单的Socket程序[入门篇]
2008-02-29 20:18
337 查看
using System.Net.Sockets;
using System.Net;
using System.Threading;
namespace ChatUDPVersion
{
public partial class frmChat : Form
{
delegate void SetTextCallback(string text);
bool isOpen = true;
Thread thread;
public frmChat()
{
InitializeComponent();
}
private void btnSend_Click(object sender, EventArgs e)
{
UdpClient clientSend = new UdpClient(Dns.GetHostName(), 8008);
try
{
Byte[] sendInfo = Encoding.Default.GetBytes(tbSend.Text);
clientSend.Send(sendInfo, sendInfo.Length);
tbSend.Text = string.Empty;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
clientSend.Close();
}
}
private void GetMessage()
{
UdpClient client = new UdpClient(8008);
IPEndPoint ipRemoteEndPoint = new IPEndPoint(IPAddress.Any, 8008);
byte[] receInfo;
while (isOpen)
{
try
{
receInfo = client.Receive(ref ipRemoteEndPoint);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
}
AddMessage(Encoding.Default.GetString(receInfo));
}
client.Close();
}
public void AddMessage(string message)
{
if (this.lbReceive.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(AddMessage);
this.Invoke(d, new object[] { message });
}
else
{
lbReceive.Items.Add(message);
}
}
private void frmChat_Load(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(this.GetMessage));
thread.IsBackground = true;
thread.Start();
}
private void frmChat_FormClosing(object sender, FormClosingEventArgs e)
{
isOpen = false;
Application.Exit();
}
}
}
using System.Net;
using System.Threading;
namespace ChatUDPVersion
{
public partial class frmChat : Form
{
delegate void SetTextCallback(string text);
bool isOpen = true;
Thread thread;
public frmChat()
{
InitializeComponent();
}
private void btnSend_Click(object sender, EventArgs e)
{
UdpClient clientSend = new UdpClient(Dns.GetHostName(), 8008);
try
{
Byte[] sendInfo = Encoding.Default.GetBytes(tbSend.Text);
clientSend.Send(sendInfo, sendInfo.Length);
tbSend.Text = string.Empty;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
clientSend.Close();
}
}
private void GetMessage()
{
UdpClient client = new UdpClient(8008);
IPEndPoint ipRemoteEndPoint = new IPEndPoint(IPAddress.Any, 8008);
byte[] receInfo;
while (isOpen)
{
try
{
receInfo = client.Receive(ref ipRemoteEndPoint);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
}
AddMessage(Encoding.Default.GetString(receInfo));
}
client.Close();
}
public void AddMessage(string message)
{
if (this.lbReceive.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(AddMessage);
this.Invoke(d, new object[] { message });
}
else
{
lbReceive.Items.Add(message);
}
}
private void frmChat_Load(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(this.GetMessage));
thread.IsBackground = true;
thread.Start();
}
private void frmChat_FormClosing(object sender, FormClosingEventArgs e)
{
isOpen = false;
Application.Exit();
}
}
}
相关文章推荐
- SOCKET入门最简单的程序啊
- 一个简单入门的win32 socket程序
- SOCKET入门最简单的程序啊
- Unix网络编程之socket编程(一)--socket入门简单程序
- 一个简单的Android入门程序
- MyBatis - 介绍、简单入门程序
- 简单的用socket传输文件程序。
- python中socket与socketserver模块简单入门使用
- java Socket ServerSocket 聊天程序 。 太简单的程序了
- 一个简单的Linux下的socket程序(2)
- Ajax一个简单入门程序(用户登录验证)
- 充分理解Socket---简单的聊天程序的代码
- MyBatis 介绍、简单入门程序
- Kafka简单入门程序
- socket实例C语言:一个简单的聊天程序
- Socket 封包与拆包入门程序示例
- 用java写的基于Socket的简单即时通讯程序
- boost 编译 asio 程序,简单socket 编程
- android Socket实现简单聊天小程序
- 简单的同步Socket程序服务端