我正在使用python中的套接字庫進行聊天,它的工作原理只有一半,當你將netcat放到我正在用作通道的地方時,我可以發送消息和其他終端能夠接收它們,但是,當終端發送消息時(輸入文本,然後按回車鍵),我沒有通過python腳本收到它。所以,我跑它以下列方式原料: 蟒蛇殼:進行套接字聊天時出錯
import socket
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(("127.0.0.1",8000)
sock.listen(2)
(client, (ip,port))=sock.accept()
終端:
nc 127.0.0.1 8000
這個工作,併發送或在Python外殼都是我要做的就是類型得到:襪子。發送(「信息」)或sock.recv(2012) 這裏是我的代碼:
#!/bin/python
import socket
import subprocess
from subprocess import Popen, PIPE
import time
class color:
r = '\033[31m'
g = '\033[32m'
d = '\033[0m'
b = '\033[94m'
p = '\033[35m'
def clear():
print('\n' * 100)
chat_clients = []
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clear()
def chatting_on_serverr():
(client, (ip, port))=sock.accept()
def chatting_on_server():
message = raw_input("Send Message: ")
client.send(message + '\n')
client.recv(2012)
chatting_on_server()
chatting_on_server()
def make_channel():
print color.b + '[+] '+color.d+'Welcome to the chat server'+color.b+' [+]'
host = raw_input("Channel Name: ")
port = input("Channel Access Key: ")
clear()
print color.p + "[info] "+color.b+"Making %s" % host
time.sleep(1)
sock.bind((host,port))
sock.listen(3)
print color.g + "[+] "+color.d+"Channel Made"+color.g+" [+]"+color.d
print("[info]: Waiting for people to join your channel...")
global chatting_on_serverr
global chatting_on_server
chatting_on_serverr()
clear()
make_channel()
什麼是與全球的輸出?爲什麼一個函數內的函數?你可以使用一個簡單的循環。 –
全球在那裏,因爲沒有它,我不斷收到一個錯誤,聲稱聊天chat_on_server是前面提到的,我得到了幾個解析錯誤,他們我相信很好,但會循環幫助無法接收郵件問題?如果是這樣,請發送一個示例@DoronCohen –