2008-05-24から1日間の記事一覧

基本TCPソケット2−4

getsockname関数とgetpeername関数 #include <sys/socket.h> int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen); int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen); 戻り値:成功 → 0, エラー → -1getsocknameサ</sys/socket.h>…

基本TCPソケット2−3

並行サーバー並行サーバーの骨格 pid_t pid; int listenfd, connfd; listenfd = socket(...); bind(listenfd, ...); listen(listenfd, backlog); for (;;) { connfd = accept(listenfd, ...); if ( (pid = fork()) == 0 ) {//Child //子プロセスは、リスニン…

基本TCPソケット2−2

accept関数TCPサーバーはacceptを用いて確立済みコネクションキューの先頭から、接続完了している次のコネクションを取り出す。確立済みコネクションキューが空の場合、プロセスはスリープ状態におかれる(ブロッキングソケットの場合)。 #include <sys/socket.h> int accep</sys/socket.h>…

基本TCPソケット2−1

listen関数1.クライアントからSYNが到着 2.TCPは確立待ちコネクションキュー上に新しいエントリを作成 3.3WHSが成功すると、対応するエントリが確立待ちコネクションキューから確立済みコネクションキューの末尾に移動する。 4.accept関数を呼び出すと、確立…