实例C#开发TCP/IP聊天室
来源:互联网 发布:1024是什么网站 知乎 编辑:程序博客网 时间:2024/05/01 03:55
服务器端原代码:
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;
using System.Threading;
using System.Net.Sockets;
namespace Win_Talk
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
#region//定义变量
IPAddress HostIP = IPAddress.Parse("127.0.0.1");
IPEndPoint point;
Socket socket;
bool flag = true;
Socket acceptedSocket;
#endregion
#region//声名委托
delegate void SetTextCallback(string text);
private void SetText(string text)
{
textBox2.AppendText(text + "/r/n");
}
#endregion
#region//进程方法
private void Proccess()
{
if (acceptedSocket.Connected)
{
while (flag)
{
byte[] receiveByte = new byte[64];
acceptedSocket.Receive(receiveByte, receiveByte.Length, 0);
string strInfo = Encoding.BigEndianUnicode.GetString(receiveByte);
this.Invoke(new SetTextCallback(SetText), new object[] { strInfo });
}
}
}
#endregion
private void button3_Click(object sender, EventArgs e)
{
try
{
socket.Close();
acceptedSocket.Close();
}
catch
{
}
finally
{
Close();
}
}
private void button2_Click_1(object sender, EventArgs e)
{
try
{
Byte[] sendByte = new Byte[64];
string sendStr = this.textBox1.Text + ":" + this.textBox3.Text + "/r/n";
sendByte = Encoding.BigEndianUnicode.GetBytes(sendStr.ToCharArray());
acceptedSocket.Send(sendByte, sendByte.Length, 0);
}
catch { }
}
private void button1_Click_1(object sender, EventArgs e)
{
HostIP = IPAddress.Parse("127.0.0.1");
try
{
point = new IPEndPoint(HostIP, Int32.Parse("11000"));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(point);
socket.Listen(50);
acceptedSocket = socket.Accept();
Thread thread = new Thread(new ThreadStart(Proccess));
thread.Start();
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
}
}
客户端程序代码:
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;
using System.Threading;
using System.Net.Sockets;
namespace win_talkClient
{
public partial class Form1 : Form
{
#region//声名变量
IPAddress HostIP = IPAddress.Parse("127.0.0.1");
IPEndPoint point;
Socket socket;
bool flag = true;
#endregion
#region//声名委托
delegate void SetTextCallback(string text);
private void SetText(string text)
{
textBox2.AppendText(text + "/r/n");
}
#endregion
#region//进程
private void Proccess()
{
if (socket.Connected)
{
while (flag)
{
byte[] receiveByte = new byte[64];
socket.Receive(receiveByte, receiveByte.Length, 0);
string strInfo = Encoding.BigEndianUnicode.GetString(receiveByte);
this.Invoke(new SetTextCallback(SetText),new object[]{strInfo});
}
}
}
#endregion
private void button2_Click(object sender, EventArgs e)
{
try
{
Byte[] sendByte = new Byte[64];
string sendStr = this.textBox1.Text + ":" + this.textBox3.Text+"/r/n";
sendByte = Encoding.BigEndianUnicode.GetBytes(sendStr.ToCharArray());
socket.Send(sendByte, sendByte.Length, 0);
}
catch { }
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
HostIP = IPAddress.Parse("127.0.0.1");
try
{
point = new IPEndPoint(HostIP, Int32.Parse("11000"));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(point);
Thread thread = new Thread(new ThreadStart(Proccess));
thread.Start();
}
catch(Exception ey)
{
MessageBox.Show("服务器没有开启/r/n"+ey.Message);
}
}
private void button3_Click(object sender, EventArgs e)
{
try
{
socket.Close();
}
catch
{
}
finally
{
Close();
}
}
}
}
- 实例C#开发TCP/IP聊天室
- 实例C#开发TCP/IP聊天室
- 实例开发聊天室 tcp协议
- C#网络编程(一)——C#开发TCP/IP聊天室
- TCP/IP聊天室
- 基于TCP的C#开发的聊天室C/S程序
- 简易聊天室一 TCP/IP框架搭建
- 多线程及TCP通信 实例之 聊天室
- TCP/IP 程序实例
- Linux TCP/IP 实例
- tcp/ip通信实例
- C# TCP/IP数据包
- Flex 与 c# socket 完整实例:聊天室
- TCP聊天室
- TCP 聊天室
- TCP聊天室
- linux网络编程练习---聊天室(TCP/IP实现)
- Unity基于TCP/IP的小聊天室实现
- 90天也过去了,我可没忘
- 一些常用的CMD命令
- 在不断地试错中调整向前
- 用SQL在文本文件中追加数据
- [J2ME Q&A]MMAPI"Cannot parse this type of AMR"异常之讨论
- 实例C#开发TCP/IP聊天室
- 期待CSDN2007技术英雄会之IBM大中华区总架构师寇卫东
- 跨域或者Internet访问Remoting[Remoting FAQ]
- 塑造敏捷企业:第二届“敏捷中国”技术大会将于北京召开
- [MSN谈话]专注、口碑和猎头
- 物有本末、事有终始-访CSDN总裁蒋涛
- [推介]明朝的那些事儿-历史应该可以写得好看
- 利用SQL移动硬盘文件
- zuma三阶段论和技术道路[一]