python - python TCP服务器中的主要功能没有生成输出

标签 python tcp server

我写了一个程序,它接受主机名和端口号的命令行参数。当我删除主要功能时它工作正常,一旦我定义了主要功能,就不会显示任何内容。

import sys
import socket
from pip._vendor.distlib.compat import raw_input
import os
import threading

def Main(serverName,serverPort):
    print('Initialising the socket')
    serverName=sys.argv[1]
    serverPort=int(sys.argv[2])
    serverAddress=(serverName,serverPort)
    #create the TCP/IP socket 
    clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    clientSocket.connect(serverAddress)
    sentence = raw_input('enter string in lower case')
    clientSocket.send(sentence)
    modifiedSentence= clientSocket.recv(1024)
    print ('from Server:'), modifiedSentence
    clientSocket.close()

if __name__==main:
    Main()

最佳答案

在这种情况下,您的 main 不会运行。您需要调整 if 子句,您还需要获取 sys.argv 并将它们传递给 Main() 方法,因为您将其编写为需要参数作为输入。

if __name__ == '__main__':
    serverName=sys.argv[1]
    serverPort=int(sys.argv[2])
    Main(serverName,serverPort)

关于python - python TCP服务器中的主要功能没有生成输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186911/

相关文章:

python - 使用 pandas 计算给定频率的数据帧的平均值

Php artisan 无法迁移

PHP 警告 : PHP Startup: Unable to load dynamic library 'mcrypt.so'

Java 服务器网络 - 通过同一端口将特定客户端相互连接

python - 在 Jinja 模板中指定字段宽度

python - 为什么 'python' 在 powershell 中无法识别?

python - SQLite/SQLAlchemy : how to enforce Foreign Keys?

linux - 如何在 Linux 内核中找到 sk_buff 的所有者套接字?

c - 如何避免 'C' 中的 TCP 聚合?

multithreading - Perl TCP 服务器处理多个客户端连接