socket 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。"
客户端打开了一个页面,然后一直打开状态,监听并截屏传递给服务器端,
服务器端连接客户端,然后不间断得截屏。
但是现在这种情况我只能截屏一次,再截一次就出现上面的错误提示。
牧野说是要不停的“accept”,可是我找不出问题的所在。下面是代码,谢谢,在线等。
服务器端
#region 发送命令
public void WaitData()
{
try
{
System.Net.Sockets.Socket su = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
System.Net.IPEndPoint localEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(StrIp.Replace("'", "''").Trim()), 7878);
su.Blocking = true;
su.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000);//设置超时
su.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 3000);
su.Connect(localEndPoint);
su.Send(Encoding.Unicode.GetBytes("1"));
//设置接收数据缓冲区的大小
byte[] b = new byte[1024 * 4];
//如何确定该数组大小
System.IO.MemoryStream fs = new System.IO.MemoryStream();
int got = 0;
int datalength = 0;
while (true)
{
got = su.Receive(b);
fs.Write(b, 0, got);
if (got > 0)
datalength = datalength + got;
else
break;
}
Bitmap Img = new Bitmap(fs);
//保存图片必须用物理路径
string Path3 = Server.MapPath("..\\1.jpg");
Img.Save(Path3, ImageFormat.Jpeg);
//提取服务器端的图片可以用http路径
this.Image1.ImageUrl = Path3;
//关闭写文件流
fs.Close();
//关闭接收数据的Socket
su.Close();
}
catch
{
}
}
#endregion
服务器端连接客户端,然后不间断得截屏。
但是现在这种情况我只能截屏一次,再截一次就出现上面的错误提示。
牧野说是要不停的“accept”,可是我找不出问题的所在。下面是代码,谢谢,在线等。
服务器端
#region 发送命令
public void WaitData()
{
try
{
System.Net.Sockets.Socket su = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
System.Net.IPEndPoint localEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(StrIp.Replace("'", "''").Trim()), 7878);
su.Blocking = true;
su.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000);//设置超时
su.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 3000);
su.Connect(localEndPoint);
su.Send(Encoding.Unicode.GetBytes("1"));
//设置接收数据缓冲区的大小
byte[] b = new byte[1024 * 4];
//如何确定该数组大小
System.IO.MemoryStream fs = new System.IO.MemoryStream();
int got = 0;
int datalength = 0;
while (true)
{
got = su.Receive(b);
fs.Write(b, 0, got);
if (got > 0)
datalength = datalength + got;
else
break;
}
Bitmap Img = new Bitmap(fs);
//保存图片必须用物理路径
string Path3 = Server.MapPath("..\\1.jpg");
Img.Save(Path3, ImageFormat.Jpeg);
//提取服务器端的图片可以用http路径
this.Image1.ImageUrl = Path3;
//关闭写文件流
fs.Close();
//关闭接收数据的Socket
su.Close();
}
catch
{
}
}
#endregion
...全文
相关推荐
Sublime Text3安装插件步骤 遇到问题:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败-附件资源
Sublime Text3安装插件步骤 遇到问题:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败-附件资源
连接超时错误:由于连接方在一段时间后没有正确响应或连接的主机未作出响应,连接尝试失败。
当我们尝试建立与远程服务器或主机的连接时,如果在一定时间内没有获得预期的响应,就会发生连接超时错误。连接超时错误的处理在编写网络应用程序时非常重要,可以提高程序的健壮性和可靠性。通过适当的错误处理,我们可以更好地应对网络环境的变化和不稳定性,提高用户体验和系统的稳定性。通过设置合适的超时时间,我们可以在连接等待时间过长时及时捕获连接超时错误,并采取相应的处理措施,如重试连接、报告错误或采取其他适当的措施。模块建立连接时,我们可以设置一个超时时间,以便在连接等待时间超过设定的阈值时引发连接超时错误。
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip


