Skip to content

Instantly share code, notes, and snippets.

@popurax
Created February 27, 2017 16:36
Show Gist options
  • Save popurax/2f4f5058688ccd80beee46a008f6b27a to your computer and use it in GitHub Desktop.
Save popurax/2f4f5058688ccd80beee46a008f6b27a to your computer and use it in GitHub Desktop.
socketをお試しで使った
#/usr/bin/env python3
import socket
cli=socket.socket(socket.AF_INET,socket.SOCK_STREAM) // STREAMってなんだ?別のでもいいのか?
cli.connect(("localhost",3434)) // サーバと繋がるまでここで止まる。繋がると、cli.close() までのコードを実行する。
msg=cli.recv(1024) // b'\xe3\x82\xb4\xe3\x83\x9f\xe7\xae\xb1' のバイト列がサーバから返され、1KBブロック?にして読み込む。
print(msg.decode('utf-8')) // b'\xe3\x82\xb4\xe3\x83\x9f\xe7\xae\xb1' =[UTF-8符号化]=> "ゴミ箱"
cli.close() // 切れる。そして終わる。
import socket
srv=socket.socket(socket.AF_INET,socket.SOCK_STREAM) // STREAMってなんだ?他のプロパティじゃダメなのか?
srv.bind( ("localhost",3434) ) // サーバとしての使命を全うする。
srv.listen(5) // 同時5接続まで?
while True:
(clientsocket,address)=srv.accept() // サーバも実はクライアントみたいに動く。繋がると、clientsocket.close() までのコードを実行する。
clientsocket.send('ゴミ箱'.encode('utf-8')) // "ゴミ箱" =[UTF-8符号化]=> b'\xe3\x82\xb4\xe3\x83\x9f\xe7\xae\xb1'
clientsocket.close()
// サーバの場合はずっとルーチンワークして、ずっと待機する。
@popurax
Copy link
Author

popurax commented Feb 27, 2017

Windowsのネットワークチューニングを何となく試そうと思ったが、「遅延ACKって何なんだろ」と変に疑問が湧いたので、勢いでググり、POSTDのTCP記事PythonでTCPスタックを書いたらどうなるのか?のコードを見ると、「ちょっとsocket試したくなってきたぞぉ」と内容無関係なことを4時間してた。
チューニングは明日やる(まあ忘れてるけど)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment