| 758 |
|
|
| 759 |
#define finish_send_packet(pvar) finish_send_packet_special((pvar), 0) |
#define finish_send_packet(pvar) finish_send_packet_special((pvar), 0) |
| 760 |
|
|
| 761 |
|
// 送信リトライ関数の追加 |
| 762 |
|
// |
| 763 |
|
// WinSockの send() はバッファサイズ(len)よりも少ない値を正常時に返してくる |
| 764 |
|
// ことがあるので、その場合はエラーとしない。 |
| 765 |
|
// これにより、TCPコネクション切断の誤検出を防ぐ。 |
| 766 |
|
// (2006.12.9 yutaka) |
| 767 |
|
static int retry_send_packet(PTInstVar pvar, char FAR * data, int len) |
| 768 |
|
{ |
| 769 |
|
int n; |
| 770 |
|
|
| 771 |
|
while (len > 0) { |
| 772 |
|
n = (pvar->Psend)(pvar->socket, data, len, 0); |
| 773 |
|
if (n == SOCKET_ERROR || n <= 0) |
| 774 |
|
return 1; // error |
| 775 |
|
len -= n; |
| 776 |
|
data += n; |
| 777 |
|
} |
| 778 |
|
return 0; // success |
| 779 |
|
} |
| 780 |
|
|
| 781 |
static BOOL send_packet_blocking(PTInstVar pvar, char FAR * data, int len) |
static BOOL send_packet_blocking(PTInstVar pvar, char FAR * data, int len) |
| 782 |
{ |
{ |
| 783 |
u_long do_block = 0; |
u_long do_block = 0; |
| 785 |
if ((pvar->PWSAAsyncSelect) (pvar->socket, pvar->NotificationWindow, |
if ((pvar->PWSAAsyncSelect) (pvar->socket, pvar->NotificationWindow, |
| 786 |
0, 0) == SOCKET_ERROR |
0, 0) == SOCKET_ERROR |
| 787 |
|| ioctlsocket(pvar->socket, FIONBIO, &do_block) == SOCKET_ERROR |
|| ioctlsocket(pvar->socket, FIONBIO, &do_block) == SOCKET_ERROR |
| 788 |
|| (pvar->Psend) (pvar->socket, data, len, 0) != len |
|| retry_send_packet(pvar, data, len) |
| 789 |
|| (pvar->PWSAAsyncSelect) (pvar->socket, pvar->NotificationWindow, |
|| (pvar->PWSAAsyncSelect) (pvar->socket, pvar->NotificationWindow, |
| 790 |
pvar->notification_msg, |
pvar->notification_msg, |
| 791 |
pvar->notification_events) == |
pvar->notification_events) == |
| 7240 |
|
|
| 7241 |
/* |
/* |
| 7242 |
* $Log: not supported by cvs2svn $ |
* $Log: not supported by cvs2svn $ |
| 7243 |
|
* Revision 1.68 2006/12/06 14:25:40 maya |
| 7244 |
|
* 表示メッセージの読み込み対応 |
| 7245 |
|
* |
| 7246 |
* Revision 1.67 2006/12/05 09:20:36 maya |
* Revision 1.67 2006/12/05 09:20:36 maya |
| 7247 |
* 表示メッセージの読み込み対応 |
* 表示メッセージの読み込み対応 |
| 7248 |
* |
* |