| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1623 人关注过本帖
标题:为什么客户端和服务端都会自动退出?
只看楼主 加入收藏
laoxie3
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-1-25
收藏
 问题点数:0 回复次数:4 
为什么客户端和服务端都会自动退出?

客户端部份代码如下:

bb = new byte[300];

// 连接服务器
tcpclnt = new TcpClient();
tcpclnt.Connect(serverip, serverport);
 ?sen = new ASCIIEncoding();
// 得到客户端的流
stm = tcpclnt.GetStream();


//连接数据库等与数据库相关的内容

try
{
while(true)
{
readeraccess = commandaccess.ExecuteReader();

while (readeraccess.Read())
{
str = readeraccess.GetString(0).ToString();

// 发送字符串
ba = asen.GetBytes(str);
Console.WriteLine("..传输中.."+ba.Length);
stm.Write(ba, 0, ba.Length);

// 接收从服务器返回的信息
k = stm.Read(bb, 0, 100);

// 输出服务器返回信息
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
}
}
// 关闭客户端连接
tcpclnt.Close();

connaccess.Close();//关闭和数据库的连接
}
catch (Exception e1)
{
Console.WriteLine("Error..... " + e1.StackTrace);
}


服务器端主要代码如下:
try
{

// 把IP地址转换为IPAddress的实例
IPAddress ipAd = IPAddress.Parse("127.0.0.1");

// 初始化监听器, 端口为8001
TcpListener myList = new TcpListener(ipAd, 8001);


// 开始监听服务器端口
myList.Start();

// 输出服务器启动信息
Console.WriteLine("在8001端口启动服务...");
Console.WriteLine("本地节点为:" + myList.LocalEndpoint);
Console.WriteLine("等待连接.....");

// 等待处理接入连接请求
// 新建立的连接用套接字s表示

     Socket s = myList.AcceptSocket();

while (true)
{
Console.WriteLine("连接来自 " + s.RemoteEndPoint);

// 接收客户端信息
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("已接收...");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}

// 处理客户端请求,给客户端回应
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("The string was recieved by the server."));
Console.WriteLine("\n已发送回应信息");
}

// 善后工作,释放资源
s.Close();
myList.Stop();

}
catch (Exception e)
{
Console.WriteLine("Error1..... " + e.StackTrace);
}


问题为什么:当客户端当传递完所有数据表记录的时候提示:
未处理的异常: System.Net.Sockets.SocketException: 由于目标机器积极拒绝,无法连接。
在 System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
在 client.Program.Main() 位置 D:\test\client1\client\Program.cs:行号 110

搜索更多相关主题的帖子: 服务端 客户端 数据库 服务器 都会 
2007-04-28 14:46
BullWolf
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-3-27
收藏
得分:0 
因为你把服务器端的联接断开了,所以无法重复发送数据.
2007-04-28 17:24
tntzwc
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:216
专家分:0
注 册:2007-4-28
收藏
得分:0 
是你自己关闭的.
你在实际传数据的过程中是不是出现过客户端不能完全接收的现象.

努力了有可能失败,不努力一定失败!
2007-04-28 20:31
laoxie3
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-1-25
收藏
得分:0 
回复:(laoxie3)为什么客户端和服务端都会自动退出?...
就是,我也发现这个问题了,感谢二位老兄,但是这个问题解决后,又存在新的问题,那就是为什么客户端传输完成后,服务器会自动退出呢?
举个例子:假设客户端从数据库中读取了解10条记录,并且也传送到服务器,服务器已接收,并且也给客户端发送了已接收的信息,但是当客户端把10条记录传送完成后,服务器却自动退出来了.这一点我就不明白了.请各位高手指点.
2007-04-28 23:40
laoxie3
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-1-25
收藏
得分:0 
已经找到问题的原因,是由于服务端的while(true)存放的位置有问题,同时没有加try{}catch{},现在的问题是客户端异常中断后,在连接为什么就连不上服务器的呢?
2007-04-29 08:55
快速回复:为什么客户端和服务端都会自动退出?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017898 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved