socket问题,高手救命啊!!!

feixiang1234 2004-03-16 05:49:30
我在用flash作为客户端,用socket做一个聊天室的服务器端,目前程序已实现在多个客户端的聊天功能,但是当一个客户端突然直接关闭浏览器,则服务器端就会流失数据,客户端也没有返回了,请高手指教,最好有源代码!!!
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixiang1234 2004-03-17
  • 打赏
  • 举报
回复
搞定了,多谢各位!
feixiang1234 2004-03-17
  • 打赏
  • 举报
回复
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Timers;
using System.Collections;

namespace socket_test
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
static private Socket client;
static private ArrayList clients=new ArrayList();
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
start();
}
static public void start()
{
Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipport=new IPEndPoint(IPAddress.Parse(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString()),2001);
socket.Bind(ipport);
socket.Listen(-1);
while(true)
{
client=socket.Accept();
if (client.Connected )
{
clients.Add(client);
Thread tc = new Thread(new ThreadStart(listenclient));
tc.Start();
}
}
}
static public void listenclient()
{
Console.WriteLine("{0}",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Socket sock=client;
try
{
while(sock!=null)
{
byte[] data=new byte[1024];
sock.Receive(data);
string message = System.Text.Encoding.UTF8.GetString(data);
Console.WriteLine(message);
byte[] data1=new byte[1024];
data1=System.Text.Encoding.UTF8.GetBytes(message);
for(int i=0;i<clients.Count;i++)
{
((Socket)clients[i]).Send(data1,data1.Length,0);
}
}
}
catch(System.Exception err)
{
Console.WriteLine(err.ToString());
}
}
}
}

这就是源代码,请指教。
turnmissile 2004-03-16
  • 打赏
  • 举报
回复
这个如果不看code,很难给你解决的,你还是先找到具体问题所在吧
tongcheng 2004-03-16
  • 打赏
  • 举报
回复
没做过
up一下
hydnoahark 2004-03-16
  • 打赏
  • 举报
回复
你的服务器的代码是怎样的?

110,535

社区成员

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

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

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