摘要: //WSAEventSelect.h#include "CInitSocket.h"typedef struct _SOCKET_OBJ{ SOCKET sock; //套接字句柄 HANDLE hEvent; //与次套接字相关的事件对象句柄 sockaddr_in addrRemote; //客户端地址信息 _SOCKET_OBJ *pNext; //指向下一个SOCKET_OBJ对象,构成链表}SOCKET_OBJ,*PSOCKET_OBJ;typedef struct _THREAD_OBJ{ HANDLE hEvents[WSA_MAXIMUM_WAIT... 阅读全文
posted @ 2011-07-08 10:47 likebeta 阅读(829) 评论(0) 推荐(0) 编辑
摘要: #include "CInitSocket.h"#include <iostream>using namespace std;CInitSock initsocket;int main(){//时间句柄和套接字句柄数组WSAEVENT eventArrary[WSA_MAXIMUM_WAIT_EVENTS];SOCKET sockArray[WSA_MAXIMUM_WAIT_EVENTS];int nEventTotal=0; //事件总数USHORT nPort=4567;SOCKET ListenSocket=socket(AF_INET,SOCK_STRE 阅读全文
posted @ 2011-07-08 09:31 likebeta 阅读(803) 评论(0) 推荐(0) 编辑
摘要: #include <WINSOCK2.H>#pragma comment(lib,"ws2_32")class CInitSock{public: CInitSock(BYTE minorVer=2,BYTE majorVer=2) { WSADATA wsaData; WORD sockVersion=MAKEWORD(minorVer,majorVer); if (WSAStartup(sockVersion,&wsaData)!=0) { exit(0); } if ( LOBYTE( wsaData.wVersion ) != minorVer 阅读全文
posted @ 2011-07-08 09:29 likebeta 阅读(601) 评论(0) 推荐(0) 编辑
摘要: #include <WINSOCK2.H>#include <iostream>#pragma comment(lib,"ws2_32")int main(){using namespace std;WSADATA wsaData;WORD sockVersion=MAKEWORD(2,2);if (WSAStartup(sockVersion,&wsaData)!=0){ cout<<"套接字库加载失败!"; exit(0);}if ( LOBYTE( wsaData.wVersion ) != 2 || H 阅读全文
posted @ 2011-07-08 09:09 likebeta 阅读(1249) 评论(0) 推荐(0) 编辑
摘要: UDP 是USER DATAGRAM PROTOCAL 的简称,是一种在网络上提供的无连接的传输协议。用UDP通信有以 下特点:1、 数据传输不用建立连接,所以不可靠;2、 数据的发送是面向整个网络的,任何一台在局域网内的计算机都可以接收到相同的数据;参考其他地方,弄一个简单的例子,希望起到抛砖引玉的作用,同时希望能给初次接触UDP之BROADCAST编程的童鞋一些参考。//recv端struct SendData{ ULONG DataSize; char DataData[1024];};BOOL CUdpServerDlg::OnInitDialog(){ CDialog::OnInit 阅读全文
posted @ 2011-07-07 20:47 likebeta 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 一、观察模仿前最重要的一步就是观察,经过半天对QQ的摆弄和摸索,总结出了以下一些特点:1、窗口开始粘附时,检测的是鼠标坐标与桌面边界的距离,特别地,粘附在下面的时候,检测的是与任务栏的距离;2、在向上移动窗口时,窗口边界永远不会超出桌面上面边界;3、窗口是个 TopMost 风格;4、当窗口粘附在上面、左边或右边并显示时,你把鼠标移动到最顶端,光标变成改变窗口大小的图标,而单单是把窗口的top坐标设置为0是不行的;5、粘附在下面的时候,当处于移动状态,那么窗口的底边是与任务栏顶边对齐的,但从隐藏到显示的时候,窗口的底端是与屏幕底边对齐的;6、隐藏后显露出来的那条线可能是一个Border,但肯定 阅读全文
posted @ 2011-07-03 17:43 likebeta 阅读(3093) 评论(0) 推荐(0) 编辑
摘要: 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi.pas单元:uses ShellAPI; 1.标准用法 ShellExecute函数原型及参数含义如下: function ShellExecute(hWnd: HWND; Operation, File... 阅读全文
posted @ 2011-07-01 16:18 likebeta 阅读(3753) 评论(0) 推荐(1) 编辑
摘要: 删除android-sdk-windows\.android\avd\或C:\Documents and Settings\@USER@\.android\avd对应版本\下的以.lock结尾的文件夹就行 阅读全文
posted @ 2011-07-01 16:16 likebeta 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。<注意下面的程序都是分块拷贝的>方法一:我用得做多的方法是创建互斥体Mutex,使用Mutex代码比较简洁,但是此时不能取得已经启动的实例窗口局柄,因此无法激活已经启动的实例窗口,代码如下:View Code // ----------------------------------------------------- 阅读全文
posted @ 2011-07-01 16:05 likebeta 阅读(5326) 评论(0) 推荐(1) 编辑
摘要: Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();2.自定义显示位置效果代码toast = Toast.makeText(getApplicationContext(), "自定义位置Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); 阅读全文
posted @ 2011-06-21 19:37 likebeta 阅读(365) 评论(0) 推荐(1) 编辑