相关疑难解决方法(0)

远程主机强制关闭现有连接

我正在使用一个商业应用程序,它正在抛出带有消息的SocketException,

远程主机强制关闭现有连接

客户端和服务器之间的套接字连接会发生这种情况 连接仍然存在,并且正在传输大量数据,但它随后就无法断开连接.

有没有人见过这个?原因是什么?我可以猜到一些原因,但是有没有办法在这段代码中添加更多内容以找出原因可能是什么?

欢迎任何意见/想法.

... 最新的 ...

我有一些.NET跟踪记录,

System.Net.Sockets Verbose: 0 : [8188] Socket#30180123::Send() DateTime=2010-04-07T20:49:48.6317500Z

System.Net.Sockets Error: 0 : [8188] Exception in the Socket#30180123::Send - An existing connection was forcibly closed by the remote host DateTime=2010-04-07T20:49:48.6317500Z 

System.Net.Sockets Verbose: 0 : [8188] Exiting Socket#30180123::Send() -> 0#0
Run Code Online (Sandbox Code Playgroud)

根据日志记录的其他部分,我看到它说'0#0'表示正在发送一个0字节长度的数据包.但这究竟意味着什么?

发生两种可能性之一,我不确定,

1)连接正在关闭,但数据随后被写入套接字,从而产生上述异常.0#0只表示没有发送任何内容,因为套接字已经关闭.

2)连接仍然是打开的,并且正在发送一个零字节的数据包(即代码有一个错误),0#0表示正在尝试发送一个零字节的数据包.

你怎么看?我想这可能是不确定的,但也许其他人已经看到过这种事情了?

.net c# sockets networking

130
推荐指数
6
解决办法
36万
查看次数

强制请求库在Python中使用TLSv1.1或TLSv1.2

我正在尝试使用python中的请求库向服务器发送POST调用.之前我能够成功发送POST调用,但最近,服务器弃用了TLSv1.0,现在只支持TLSv1.1和TLSv1.2.现在相同的代码抛出一个"requests.exceptions.SSLError:EOF发生违反协议(_ssl.c:590)"错误.

我在stackoverflow上发现了这个线程Python请求requests.exceptions.SSLError:[Errno 8] _ssl.c:504:EOF违反了协议,这表示我们需要继承HTTPAdapter,之后会话对象将使用TLSv1.我相应地更改了我的代码,这是我的新代码

class MyAdapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
    self.poolmanager = PoolManager(num_pools=connections,
                               maxsize=maxsize,
                               block=block,
                               ssl_version=ssl.PROTOCOL_TLSv1)

url="https://mywebsite.com/ui/"
headers={"Cookie":"some_value","X-CSRF-Token":"some value","Content-Type":"application/json"}    
payload={"name":"some value","Id":"some value"}    
s = requests.Session()
s.mount('https://', MyAdapter())

r=s.post(url,json=payload,headers=headers)
html=r.text
print html
Run Code Online (Sandbox Code Playgroud)

但即使使用了这个,我也得到了同样的错误"违反协议的EOF(_ssl.c:590)".

我的第一个问题是,我在某处读取默认使用ssl的请求.我知道我的服务器使用的是TLSv1.0,我的代码是否正常工作,因为TLSv1.0与ssl3.0向后兼容?

我的第二个问题是,我上面提到的stackoverflow线程使用了我将我的代码更改为子类HTTPAdapter,表示这将适用于TLSv1.但是由于我的服务器中不推荐使用TLSv1.0,这段代码仍然有效吗?

python ssl

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

networking ×1

python ×1

sockets ×1

ssl ×1