Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
udp ping客户端和服务器python代码不打印任何内容/通信_Python_Sockets_Udp - Fatal编程技术网

udp ping客户端和服务器python代码不打印任何内容/通信

udp ping客户端和服务器python代码不打印任何内容/通信,python,sockets,udp,Python,Sockets,Udp,我一直在尝试用python编写upd客户机和服务器。我在这里提供了我的代码。当我运行客户端和服务器文件时,我没有收到任何错误消息,也没有得到任何输出。我已经做了很多研究,但我似乎不知道如何让它发挥作用。请帮忙 我的服务器代码在这里 from socket import * import random def main(): Ssocket = socket(AF_INET, SOCK_DGRAM ) Ssocket.bind(('', 2014)) print("I

我一直在尝试用python编写upd客户机和服务器。我在这里提供了我的代码。当我运行客户端和服务器文件时,我没有收到任何错误消息,也没有得到任何输出。我已经做了很多研究,但我似乎不知道如何让它发挥作用。请帮忙

我的服务器代码在这里

from socket import *
import random


def main():
    Ssocket = socket(AF_INET, SOCK_DGRAM )
    Ssocket.bind(('', 2014))
    print("I will be waiting on port" , 2014)

    while True:
        RandNum = random.randint(0,10)
        data , clientAddress = Ssocket.recvfrom(1024)
        newData =  data.upper()



        if randNum < 4:
            print ("packet lost")
            continue

        Ssocket.sendto(newData, clientAddress)
    main()
从套接字导入*
随机输入
def main():
Ssocket=插座(自动线、插座)
Ssocket.bind(“”,2014))
打印(“我将在港口等待”,2014年)
尽管如此:
RandNum=random.randint(0,10)
数据,clientAddress=Ssocket.recvfrom(1024)
newData=data.upper()
如果randNum<4:
打印(“数据包丢失”)
持续
Ssocket.sendto(新数据、客户地址)
main()
我的客户代码如下

from socket import*
from datetime import datetime
from time import time

def main():
    print (" the program is running  ")

    serverName = 'localhost'
    port = 2014
    Csocket = socket(socket.AF_INET, socket.SOCK_DGRAM)
    data = ' ping'
    #data = input("Enter a message in lowercase")

    LastPing = 10
    count = 0
    Csocket.settimeout(1)
    print ("Attempting to send " , count , "messages" )

    while count  < LastPing:
        count = count + 1
        startTime = time.time()
        print("The current time is: " , startTime , " and this is message
              number: " , count)
        Csocket.sendto(data, (serverName, port))

        try:
            newData, clientAddress = Csocket.recvfrom(1024)
            RTT = ((time.time()) - startTime)
            print (newData)
            print (RTT)
        except socket.timeout:
            print(" Request timed out ")
    print ("the program is done")
从套接字导入*
从日期时间导入日期时间
从时间导入时间
def main():
打印(“程序正在运行”)
服务器名='localhost'
港口=2014年
Csocket=插座(socket.AF_INET,socket.SOCK_DGRAM)
数据='ping'
#数据=输入(“以小写字母输入消息”)
拉斯平=10
计数=0
Csocket.settimeout(1)
打印(“尝试发送”,计数,“消息”)
计数<上次ping时:
计数=计数+1
startTime=time.time()
打印(“当前时间是:”,startTime“,这是消息
编号:“,计数)
Csocket.sendto(数据,(服务器名,端口))
尝试:
newData,clientAddress=Csocket.recvfrom(1024)
RTT=((time.time())-startTime)
打印(新数据)
打印(RTT)
除socket.timeout外:
打印(“请求超时”)
打印(“程序完成”)

修改服务器代码和客户端代码如下: Server.py

from socket import *
import random
def main():
    ssocket = socket(AF_INET, SOCK_DGRAM )
    ssocket.bind(('', 2014))
    print("I will be waiting on port" , 2014)

    while True:
        RandNum = random.randint(0,10)
        data , clientAddress = ssocket.recvfrom(1024)
        newData =  data.upper()



        if RandNum < 4:
            print ("packet lost")
            continue

        ssocket.sendto(newData, clientAddress)
main()
从套接字导入*
随机输入
def main():
ssocket=插座(自动线、插座)
ssocket.bind(“”,2014))
打印(“我将在港口等待”,2014年)
尽管如此:
RandNum=random.randint(0,10)
数据,clientAddress=ssocket.recvfrom(1024)
newData=data.upper()
如果RandNum<4:
打印(“数据包丢失”)
持续
ssocket.sendto(新数据、客户地址)
main()
Client.py

from socket import *
import datetime
import time

def main():
    serverName = 'localhost'
    port = 2014
    Csocket = socket(AF_INET, SOCK_DGRAM)
    data = ' ping'
    #data = input("Enter a message in lowercase")

    LastPing = 10
    count = 0
    Csocket.settimeout(1)
    print ("Attempting to send " , count , "messages" )

    while count  < LastPing:
        count = count + 1
        startTime = time.time()
        print("The current time is: " , startTime , " and this is message number: " , count)
        Csocket.sendto(data, (serverName, port))

        try:
            newData, clientAddress = Csocket.recvfrom(1024)
            RTT = ((time.time()) - startTime)
            print (newData)
            print (RTT)
        except timeout:
            print(" Request timed out ")
        except Exception as e:
            print e
    print ("the program is done")
main()
从套接字导入*
导入日期时间
导入时间
def main():
服务器名='localhost'
港口=2014年
C插座=插座(自动线、插座)
数据='ping'
#数据=输入(“以小写字母输入消息”)
拉斯平=10
计数=0
Csocket.settimeout(1)
打印(“尝试发送”,计数,“消息”)
计数<上次ping时:
计数=计数+1
startTime=time.time()
打印(“当前时间为:,开始时间”,这是消息编号:,计数)
Csocket.sendto(数据,(服务器名,端口))
尝试:
newData,clientAddress=Csocket.recvfrom(1024)
RTT=((time.time())-startTime)
打印(新数据)
打印(RTT)
除超时外:
打印(“请求超时”)
例外情况除外,如e:
打印e
打印(“程序完成”)
main()

最终通过卸载我的python和pyscripter解决了这个问题,因为部分问题是因为我使用的是python gui和一个不对应的pyscripter。然后我安装了python 2.7.5和pyscripter 2.5.3。在pyscripter中运行服务器,在pythonshell中运行客户端。对我来说很好

谢谢,我尝试了这一点,我得到了这个错误:回溯(最近一次调用):文件“C:\Users\Daniel\Documents\COMP 430\Python Programs\testCLient.py”,第33行,在main()文件“C:\Users\Daniel\Documents\COMP 430\Python Programs\testCLient.py”,第21行,在main Csocket.sendto(数据,(serverName,port))TypeError:“str”不支持缓冲区接口如果使用python 3,则在发送时使用
data.encode('ascii')
而不是数据,在读取/打印时使用
data.decode('ascii'))
谢谢。在与这个问题长期斗争之后,我终于通过卸载python和pyscripter解决了这个问题,因为部分问题是因为我使用的是python gui和一个不对应的pyscripter。然后我安装了python 2.7.5和pyscripter 2.5.3。在pyscripter中运行服务器,在python shell中运行客户端。对我来说效果很好!