C# 如何在套接字服务器和客户端之间进行连接检查?
我在python服务器和C# 如何在套接字服务器和客户端之间进行连接检查?,c#,python,sockets,C#,Python,Sockets,我在python服务器和c客户端之间有一个套接字连接,因此我试图在客户端定义一个布尔变量\u status,在该变量上存储连接状态(true或false)。我尝试了下面的代码,但它不工作;它总是返回一个错误的状态,有什么问题吗?还有比这更好的办法吗 c#代码: python代码: while True: try: msg = ReceiveQuery(client) if msg == "Are you here?":
c
客户端之间有一个套接字连接,因此我试图在客户端定义一个布尔变量\u status
,在该变量上存储连接状态(true或false)。我尝试了下面的代码,但它不工作;它总是返回一个错误的状态,有什么问题吗?还有比这更好的办法吗
c#代码:
python代码:
while True:
try:
msg = ReceiveQuery(client)
if msg == "Are you here?":
SendQuery("Yes",client)
except Exception as e:
print ('an exception has been generated')
虽然我不知道套接字连接对象的实现
sc
,但我发现您的代码中存在一些问题:
包含连接套接字和通过套接字接收数据。您应该将其分为连接和接收ReceiveStatus()
- 由于任务中启动了
,因此可能会出现ReceiveStatus()
sc.SendQuery(“您在吗?”)在连接套接字之前调用代码>
- 虽然在无限循环中调用了
,但在任务中只调用了一次SendQuery()
。一旦任务结束,您就再也不会阅读新信息ReceiveQuery()
task.Result
在task.Wait
之后从Python返回时,它的值是多少?task.Result
的值尚未计算
您能否提供ReceiveStatus()
的代码?@RolandBär:done这很有帮助!
while True:
try:
msg = ReceiveQuery(client)
if msg == "Are you here?":
SendQuery("Yes",client)
except Exception as e:
print ('an exception has been generated')