はじめてのPython
ほんとに初めてなので、Helloから。
hello.py
#!/usr/bin/python print ("Hello World")
3以降は()がないとダメになったとか言われたので、つけておいた。
お次はいきなりSocket通信。VBとかCだと結構敷居が高い気がする(気がするだけ。奥は深いけど、通信できるまでならすぐ行く)のだけど、Pythonだとものすごく敷居が低い。
server.py
#!/usr/bin/python from socket import * sv = socket(AF_INET, SOCK_STREAM) sv.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sv.bind(('', 12345)) sv.listen(SOMAXCONN) (sv_ac, cl_addr) = sv.accept() sv_ac.send('Hello World\n')
client.py
#!/usr/bin/python from socket import * import sys cl = socket(AF_INET, SOCK_STREAM) cl.connect((gethostbyname('localhost'),12345)) buf = cl.recv(1024) sys.stdout.write(buf)
参考は
http://journal.mycom.co.jp/column/helloworld/020/index.html
ほぼコピペ。
では続いて…(今からやる)ループに対応した。whileの文法、ちょっと気持ち悪いな…。
server.py
#!/usr/bin/python from socket import * import sys import string import time sv = socket(AF_INET, SOCK_STREAM) sv.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sv.bind(('', 12345)) sv.listen(SOMAXCONN) (sv_ac, cl_addr) = sv.accept() count = 0 while 1: print count sv_ac.send('Hello World\n') time.sleep(1) count = count + 1
client.py
#!/usr/bin/python from socket import * import sys cl = socket(AF_INET, SOCK_STREAM) cl.connect((gethostbyname('localhost'),12345)) while 1: buf = cl.recv(1024) sys.stdout.write(buf)
次はマルチクライアント対応かな。