protected override void DefWndProc(ref Message m)
{
switch(m.Msg)
{
case YOUR MSGID:
//do your job
break
}
base.DefWndProc(ref m)
}或者实现IMessageFilter接羡吵型口碰扮
#include <iostream>#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std
//头文件包含
int main()
{ int recvbytes
char temp[100]
char a[100] //一些变量的声明
WORD wVersionRequested
WSADATA wsaData
SOCKET sock_id, client_id //定义两个套接字
struct sockaddr_in serv_addr, remote_addr//定义两个结构
wVersionRequested = MAKEWORD(2, 0)//这个是固定用法 版本
if (0 != WSAStartup(wVersionRequested, &wsaData)) //此处初始化socke库
{
cout <<"加载Winsock库出错!" <<endl
exit(1)
}
if (-1 == (sock_id = socket(AF_INET, SOCK_STREAM, 0))) //建立一个类型为TCP的套接字
{
cout <<"创建套接字出错!" <<endl
exit(1)
}
//填充结构体内容
serv_addr.sin_family = AF_INET//固定
serv_addr.sin_port = htons(800)//端口
serv_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1")//ip
memset(&(serv_addr.sin_zero), 0, sizeof(serv_addr.sin_zero))//其他填充为零
//绑定到套接字描述符
if (SOCKET_ERROR == bind(sock_id, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)))
{
cout <祥旦<"1出错!" <<endl
exit(1)
}
//开始监听
if (SOCKET_ERROR == listen(sock_id, 5))
{
cout <<漏宴岩 "2出错!" <<endl
exit(1)
}
//如果来了一个连接请求 处理输入后发送给对方 输入的东东
int sin_size = sizeof(struct sockaddr_in)
if (SOCKET_ERROR == (client_id = accept(sock_id, (struct sockaddr *)&remote_addr, &sin_size)))
{
cout <<"3出错!" <<endl
exit(1)
}
cout<<"连接到一个客户端!!!请发送消息给他!!!"<<endl
cout<<"请输入要发送的消息!!!"<<endl
while(1)
{ cin>>a
send(client_id, a, strlen(a), 0)//把输入的东东发送出去
if (ERROR_SUCCESS == (recvbytes = recv(client_id, temp, 100, 0))) //接收数据到temp缓冲区
{
cout <<"接受数据出错!" <<endl
exit(1)
}
temp[recvbytes] = '\0'
cout <返御<temp <<endl
if(temp[0]!='8')
continue
else
break
}
closesocket(client_id)//关闭套接字
closesocket(sock_id)//关闭套接字
WSACleanup()//清理套接字库等收尾工作
system("pause")//暂停
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)