您现在的位置: 范文先生网 >> 理工论文 >> 计算机论文 >> 正文

C语言实的串行通信接口程序

时间:2007-1-30栏目:计算机论文

er(hWnd, "Socket Report Failure");
closesocket(s);
break;
}
break;
}
break;
case WM-DESTROY:
closesocket(s);/*关闭窗口前应该关闭套接字,并*/
WSACleanup();/*终止Windows Sockets DLL*/
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, message,
wParam, lParam));
}
return (NULL);
}
程序4:部分Windows程序源代码(子程序)
BOOL Client(HWND hWnd)/*客户机子程序*/
{
if (!make-skt(hWnd))/*建立套接字*/
return(FALSE);
if (!set-select(hWnd,FD-CONNECT))/*设置异步连接*/
return(FALSE);
if (!connect-skt(hWnd))/*建立连接*/
return(FALSE);
return(TRUE);
}
BOOL receive-pkt(HWND hWnd)/*接收数据子程序*/
{
HDC dc;
intlength;
int11,12,13;
charlinel,line2,line3;
count ++;/*循环计数器加1*/
if ((length=recv(s,lpBuffer,1024,0))==SOCKET-ERROR)
return(FALSE); /*如果接收数据出错,则返回FALSE*/
if (length==0) /*接收数据长度为零,表示连接中断*/
return(FALSE);
if (dc=GetDC(hWnd)) { /*接收数据成功,显示信息*/
11=wsprintf((LPSTR) line1,"TCP Echo Client No.%d",count);
12=wsprintf((LPSTR) line2,"Received %d bytes", length);
13=wsprintf((LPSTR) line3,"Those are:%c,%c,%c,%c,%c,%c",
buffer,buffer,buffer,buffer,buffer,buffer
);
TextOut(dc, 10, 2, (LPSTR) linel, 11);
TextOut(dc, 10, 22, (LPSTR) line2, 12);
TextOut(dc, 10, 42, (LPSTR) line3, 13);
ReleaseDC(hWnd, dc);
}
return(TRUE);
}
BOOL set-select(HWND hWnd, long lEvent)/*异步选择子程序*/
{
if (WSAAsyncSelect(s,hWnd, UM-SOCK, lEvent)==SOCKET-ERROR) {
AlertUser(hWnd, "WSAAsyncSelect Failed");
return (FALSE);
}
return (TRUE);
}
BOOL make-skt(HWND hWnd)/*建立套接字子程序*/
{
if ((s=socket(AF-INET,sock-type,0))==INVALID-SOCKET) {
AlertUser(hWnd, "Socket Failed");
return (FALSE);
}
return (TRUE);
}
BOOL connect-skt(HWND hWnd)/*建立连接子程序*/
{
memset((void*) &dst-addr, sizeof(dst-addr),0);
dst-addr.sin-family=AF-INET;
dst-addr.sin-port=htons(USERPORT);
dst-addr.sin-addr.s-addr=*((unsigned long *)hostnm.h-addr-list );
if (connect(s, (stru

ct sockaddr *) & dst-addr,
sizeof(dst-addr))==SOCKET-ERROR) {
AlertUser(hWnd, "Connect Failed");
return (FALSE);
}
return (TRUE);
}
BOOL send-pkt(HWND hWnd, int len)/*发送数据子程序*/
{
int length;
if ((length=send(s,lpBuffer,len,0))==SOCKET-ERROR)
return (FALSE);

上一页  [1] [2] [3] [4] [5] [6] 下一页

下页更精彩:1 2 3 4 下一页