聊天窗口的代码

拓-------轩 2011-11-14 08:15:34
如何编写全球,就是怎样连接两台电脑的服务器进行聊天?
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
拓-------轩 2011-11-18
  • 打赏
  • 举报
回复
那么那个窗口的样子是怎么样的? 截张图片看看
拓-------轩 2011-11-18
  • 打赏
  • 举报
回复
哦哦 谢了啊
longai123 2011-11-15
  • 打赏
  • 举报
回复
客户端的代码
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.Net.Sockets;
using System.Threading;
namespace _01111092
{
public partial class Form1 : Form // partial
{
private IPEndPoint MyServer;
private Socket connectSock;
private bool check = true;
private IPAddress myIP = IPAddress.Parse("127.0.0.1");
public Form1()
{
InitializeComponent();
}
private void receive()
{
while (true)
{
byte[] Rec = new Byte[64];
NetworkStream netStream = new NetworkStream(connectSock);
netStream.Read(Rec, 0, Rec.Length);
String RecMessage =
System.Text.Encoding.BigEndianUnicode.GetString(Rec);
richTextBox1.AppendText(RecMessage + "\r\n");
}

}
private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
try
{
myIP = IPAddress.Parse(textBox1.Text);
}
catch { MessageBox.Show("输入的IP地址格式不正确,请重新输入!"); }
try
{
MyServer=new IPEndPoint(myIP,Int32.Parse(textBox2.Text));
connectSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
connectSock.Connect(MyServer);
textBox3.AppendText("与主机" + textBox1.Text + "端口" + textBox2.Text + "连接成功!\r\n");
Thread thread=new Thread(new ThreadStart(receive));
thread.Start();
}
catch(Exception ee){MessageBox.Show(ee.Message);}
}

private void button2_Click(object sender, EventArgs e)
{
try
{
byte[] sendByte = new byte[64];
String send = richTextBox2.Text + "\r\n";
NetworkStream netStream = new NetworkStream(connectSock);
sendByte = System.Text.Encoding.BigEndianUnicode.GetBytes(send.ToCharArray());
netStream.Write(sendByte, 0, sendByte.Length);
netStream.Flush();
}
catch { MessageBox.Show("连接尚未建立!无法发送!!!"); }
}

private void button3_Click(object sender, EventArgs e)
{
try
{
connectSock.Close();
// this.Close();
textBox3.AppendText("与主机" + textBox1.Text + "端口" + textBox2.Text + "断开连接!\r\n");
}
catch { MessageBox.Show("连接尚未建立,断开无效"); }
}


}
}
longai123 2011-11-15
  • 打赏
  • 举报
回复
服务器端的同步SOCKET代码
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.Net.Sockets;
using System.Threading;
namespace _0111109
{
public partial class Form1 : Form
{
private IPAddress myIP = IPAddress.Parse("127.0.0.1");
private IPEndPoint MyServer;
private Socket sock;
private bool check=true;
private Socket accSock;
public Form1()
{
InitializeComponent();
}
private void accp()
{
MyServer=new IPEndPoint(myIP,Int32.Parse(textBox2.Text));
sock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sock.Bind(MyServer);
sock.Listen(50);
MessageBox.Show("成功开监听");
// textBox3.AppendText("主机"+textBox1.Text+"端口"+textBox2.Text+"开始监听.....\r\n");
while (check)
{
accSock = sock.Accept();
if (accSock.Connected) //
{
textBox3.AppendText("与客户建立连接,");
Thread thread = new Thread(new ThreadStart(round));
thread.Start();

byte[] Rec=new byte[64];
NetworkStream netStream=new NetworkStream(accSock);
netStream.Read(Rec,0,Rec.Length);
string RecMessage=
System.Text.Encoding.BigEndianUnicode.GetString(Rec);
richTextBox1.AppendText(RecMessage+"\r\n");
}
}

}
private void round()
{
while (true)
{
byte[] Rec = new Byte[64];
NetworkStream netStream = new NetworkStream(accSock);
netStream.Read(Rec, 0, Rec.Length);
String RecMessage =
System.Text.Encoding.BigEndianUnicode.GetString(Rec);
richTextBox1.AppendText(RecMessage + "\r\n");
}
}
private void Form1_Load(object sender, EventArgs e)
{

}

private void textBox3_TextChanged(object sender, EventArgs e)
{

}

private void label1_Click(object sender, EventArgs e)
{

}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{

}

private void label4_Click(object sender, EventArgs e)
{

}

private void label5_Click(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{

}

private void button3_Click(object sender, EventArgs e)
{
try
{sock.Close();
textBox3.AppendText("主机"+textBox1.Text+"端口"+textBox2.Text+"监听停止!\r\n");
}
catch{MessageBox.Show("监听尚未开始,关闭无效!");}

}

private void button1_Click_1(object sender, EventArgs e)
{
try
{
myIP = IPAddress.Parse(textBox1.Text);
}
catch { MessageBox.Show("您输入的IP地址格式下正确,请重新输入!"); }
try
{
Thread thread = new Thread(new ThreadStart(accp));
thread.Start();
}
catch (Exception ee) { textBox3.AppendText(ee.Message); }
}

private void button2_Click(object sender, EventArgs e)
{
try
{
byte[] sendByte = new byte[64];
String send = richTextBox2.Text + "\r\n";
NetworkStream netStream = new NetworkStream(accSock);
sendByte = System.Text.Encoding.BigEndianUnicode.GetBytes(send.ToCharArray());
netStream.Write(sendByte, 0, sendByte.Length);
// netStream.Flush();
}
catch { MessageBox.Show("连接尚未建立!无法发送!!!"); }
}
}
}
拓-------轩 2011-11-14
  • 打赏
  • 举报
回复
就是说那些代码怎么打 如果知道的话就麻烦打出来看看哦 做个参考 也可以打出主要的就行的
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 andy1020tc 的回复:]
获取两台电脑的IP 然后设置端口就行了 聊天的话 用Socket实现
[/Quote]
楼主先实现了局域网的再说全球
PS:我也正在做聊天室
andy1020tc 2011-11-14
  • 打赏
  • 举报
回复
获取两台电脑的IP 然后设置端口就行了 聊天的话 用Socket实现

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧