Ovako, trenutno učim net programiranje u Pythonu i naišao sam na jedan meni neriješiv problem...
Neznam što da upišem pod host u client aplikaciji tako da se client spaja online s nekog drugog
računala na moje, a ne preko localhosta... Bilo kakva pomoć je dobrodošla! btw probao sam s
http://www.whatismyip.com/ i sa socket.gethostname() i ništa... , whatismyip izazva TimedOut a
sa socket.gethostname izaziva neki error koji ja nisam vidio jer sam testirao s prijeteljem...
Kodovi:
from socket import *
import sys
import os
bufsiz = 4096
host = ''
port = 53455
addr = (host, port)
class ServCmd:
def __init__(s):
s.__serv = socket( AF_INET, SOCK_STREAM )
s.__serv.bind((addr))
s.__cli = None
s.__imlistening = 0
s.__improcessing = 0
s.__run()
def __run(s):
s.__imlistening = 1
while s.__imlistening:
s.__listen()
s.__improcessing = 1
while s.__improcessing:
s.__procCmd()
s.__cli.close()
s.__serv.close()
def __listen(s):
s.__serv.listen(5)
print '...listening'
cli, addr = s.__serv.accept()
s.__cli = cli
print '...connected: ', addr
def __procCmd(s):
cmd = s.__cli.recv(bufsiz)
if not cmd: return
print cmd
s.__servCmd(cmd)
if s.__improcessing:
proc = os.popen(cmd)
outp = proc.read()
if outp:
s.__cli.send(outp)
else:
s.__cli.send('good')
def __servCmd(s, cmd):
cmd = cmd.strip()
if cmd == 'BYE':
s.__improcessing = 0
if __name__ == '__main__':
serv = ServCmd()
Client
from socket import *
from time import time
from time import sleep
import sys
BUFSIZE = 4096
class CmdLine:
def __init__(s,host):
s.__HOST = host
s.__PORT = 53455
s.__ADDR = (s.__HOST,s.__PORT)
s.__sock = None
def makeConnection(s):
s.__sock = socket( AF_INET,SOCK_STREAM)
s.__sock.connect(s.__ADDR)
def sendCmd(s, cmd):
s.__sock.send(cmd)
def getResults(s):
data = s.__sock.recv(BUFSIZE)
print data
if __name__ == '__main__':
conn = CmdLine(???)
conn.makeConnection()
conn.sendCmd('DUMMY CMD')
conn.getResults()
conn.sendCmd('BYE')
Nisam ja napisao kod, prepisao sam ga iz tutoriala po kojem sam učio a kojeg više nemogu naći...