2008-02-17から1日間の記事一覧

あー…

echoサーバを書き続けるブログになってるなぁ。 今日はaio_readかな。

echod_winsock.c

#include <stdio.h> #include <winsock2.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #define RCVBUFSIZE 256 #define die(...) do { fprintf(stderr, __VA_ARGS__); WSACleanup(); exit(1); } while(0) #define debug(...) do { fprintf(stderr, __VA_ARGS__); } while(0) sta</winsock2.h></stdio.h>…

echod_winsock_select.c

fd_setをなめるのがめんどくさいなぁ。 #include <stdio.h> #include <winsock2.h> #include <time.h> #define _CRT_SECURE_DEPRECATE_MEMORY #include <memory.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #define RCVBUFSIZE 256 #define die(...) do { fprintf(stderr, __VA_ARGS__); WSAClean</memory.h></time.h></winsock2.h></stdio.h>…

RubyでのWinSockの初期化

拡張でWinSockの初期化をするわけにはいかないよなぁ…ということでRubyのソース(1.8.6-p111)を読んでみる。 win32/win32.cのStartSockets()関数でWinSockで初期化されてた。 static void StartSockets () { WORD version; WSADATA retdata; int ret; #ifndef…

WinSock: WSAPoll

http://msdn2.microsoft.com/en-us/library/ms741669.aspx 最近追加されたみたい。サンプル少ないなー。 Rubyで使ってみようと思ったら、WinSockのバージョンが違って挫折。

echod_winsock_poll.c

書くことは書いたけど、ws2_32.dllのバージョンが古くて動かず。 #include <stdio.h> #include <winsock2.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #define MAX_NFDS 64 #define RCVBUFSIZE 256 #define POLL_TIMEOUT 1000 #define die(...) do { fprintf(stderr, __VA_ARGS</winsock2.h></stdio.h>…