Python线程Socket / OS / Win错误 - 线程中未处理的异常

时间:2017-12-19 17:03:30

标签: python multithreading sockets

我正在开发一个python程序,一旦启动它将主动侦听传入连接(通过套接字),但也为用户提供启动传出连接的机会。这是我的目标计划的基本描述,我在这里稍微详细一点...... python - stop waiting for input() when a condition (not timer) is met

我仍然没有找到我在上面链接中提出的问题的解决方案。但是,我稍微改变了方向,并且一直在研究这个项目的功能方面。我一直在取得进展,我有一个工作解决方案,用于接收连接请求和发送连接请求的程序。

发送连接请求时,程序将成功连接,但会引发错误...

Unhandled exception in thread started by <function outgoing at 0x00E4D4B0>
Traceback (most recent call last):
  File "PATH\program.py", line 27, in outgoing
    sc.connect((ip, port))
OSError: [WinError 10022] An invalid argument was supplied

即使抛出此错误,我仍然成功连接到服务器/主机。

这个程序还远没有完成,我知道还有很多改进,但是现在我只想尝试一个工作/无错误的解决方案。

import socket
from _thread import *

ip = ''
host = ''
port = 5555

ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
    ss.bind((host, port))
except socket.error as e:
    print(str(e))

ss.listen(2)

def incoming():
        conn, addr = ss.accept()
        if conn:
            print('################################\nIncoming Connection Established!\n Address = '+addr[0]+':'+str(addr[1]))

def outgoing():
    while True:
        if ip != '':
            try:
                sc.connect((ip, port))
                break
            except error as e:
                print(str(e))
                break

print("Waiting for a connection...")

start_new_thread(incoming,())
start_new_thread(outgoing,())

ip = input('...Or enter an ip address to initiate the connection.\n')

outgoing()

0 个答案:

没有答案