网络tcp/ip连接怎么设置超时时间长一点呢?

51touch 2019-07-05 03:00:32
在网上下载了一个他人写的简单的 httpserver , 其中有一个部分代码是 响应post请求,然后发送回去对应的响应结果
响应的部分代码如下
其中 socket 定义的是 public TcpClient socket;

现在碰到的问题是由于响应处理的时间太长,导致处理完成后,最后发送回去响应信息时,程序运行到 outputStream.Flush(); 就提示

unable to write data to the transport connection:远程主机强迫关闭了一个现有连接。"

我想这个原因应该是 tcp/ip 连接断开了,我想问一下,哪里可以把 tcp/ip 连接的超时时间设置的长一些呢?

大神给点思路,谢谢!


public void process() {
// we can't use a StreamReader for input, because it buffers up extra data on us inside it's
// "processed" view of the world, and we want the data raw after the headers
inputStream = new BufferedStream(socket.GetStream());

// we probably shouldn't be using a streamwriter for all output from handlers either
outputStream = new StreamWriter(new BufferedStream(socket.GetStream()));
try {
parseRequest();
readHeaders();
if (http_method.Equals("GET")) {
handleGETRequest();
} else if (http_method.Equals("POST")) {
handlePOSTRequest();
}
} catch (Exception e) {
Console.WriteLine("Exception: " + e.ToString());
writeFailure();
}
outputStream.Flush();
// bs.Flush(); // flush any remaining output
inputStream = null; outputStream = null; // bs = null;
socket.Close();
}

...全文
962 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
51touch 2019-07-05
  • 打赏
  • 举报
回复
谢谢你的这个建议。

既然是客户端 tcpclient 的问题,那至少找到了一个解决这个问题的方向了。
51touch 2019-07-05
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
哦,我想你可以直接把这个代码弃掉了。反正不是你自己写的,弃掉不可惜。

现在直接用owin self host,nancy,net core就可以直接做httpserver了

当然回到你现在的问题,没有那么回事。那是客户端断掉了,你改服务端没用。通常httpclient超时时间是60s左右


如果是客户端自己断掉了的话,那即使改成其他方式做 httpserver 也是没有什么帮助了。
51touch 2019-07-05
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
响应用了多久?
这个断开是客户端http设置的,一段时间没收到回应,客户端自己断开了


响应用了 50s 。
本来可以不用这么久,因为要进行一些硬件操作。怕硬件操作时间不够,所以多预留了一些时间。
然后就发现这个时候 tcp/ip 断开了连接了。
  • 打赏
  • 举报
回复
HTTP 可以通过IIS 设置超时响应时间。 TCP 没试过啊。
wanghui0380 2019-07-05
  • 打赏
  • 举报
回复
哦,我想你可以直接把这个代码弃掉了。反正不是你自己写的,弃掉不可惜。 现在直接用owin self host,nancy,net core就可以直接做httpserver了 当然回到你现在的问题,没有那么回事。那是客户端断掉了,你改服务端没用。通常httpclient超时时间是60s左右
stherix 2019-07-05
  • 打赏
  • 举报
回复
响应用了多久? 这个断开是客户端http设置的,一段时间没收到回应,客户端自己断开了

111,094

社区成员

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

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

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