你直接用connect、bind、socket这些函数不就行了?每一本TCP/IP的书上都有说明的,反正你在控制台程序里也没办法用大部分MFC的类。
解决方案 »
- 求个算法,缩放JPG并存储图片
- 请问如何可以实现用程序修改路由表问题,修改网关地址,是否可以通过 修改0。0。0。0 mask 0。0。0。0 把gateway 地址换掉的方法
- 向大家咨询一个关于CDataGrid的问题
- 如何让我的toolbar浮动在全屏模式
- 求助,一个基础性的问题!!!
- 求sdk中有关完成端口(iocp)的例程代码
- VC 中如何设置打印机的物理页边距?
- 有誰知道英文版的VC6.0?
- 小试SDK对话框显示菜单,但还是不显示出来,help!
- VC是各种字符类型的转换
- 使用vtoolsD的人请进!!!高分相赠
- sunlet、kingwill、PPC207 请快帮帮我,NT和Windows 9x下的CAsyncSocket编程有什么区别?为什么在Windos9x下可以连接,而在nt下不能运行?
#include "stdafx.h"
#include "winsock2.h"
SOCKET sock;
sockaddr_in addr;
int nSockErr;
int main(int argc, char* argv[])
{
WSADATA wsadata;
int result;
if(WSAStartup(MAKEWORD(2,0),&wsadata))
{
MessageBox(NULL,"Your system does not support WinSocket2!","Error!",MB_OK);
return -1;
}
if(wsadata.wVersion!=MAKEWORD(2,0))
{
MessageBox(NULL,"Your system does not support WinSocket2!","Error!",MB_OK);
WSACleanup();
return -2;
}
if((sock=socket(AF_INET,SOCK_STREAM,0))<0)
MessageBox(NULL,"Create socket error!","Error!",MB_OK);
addr.sin_family=AF_INET;
addr.sin_port=htons(8080);
addr.sin_addr.s_addr=INADDR_ANY; result=bind(sock,(sockaddr*)&addr,sizeof(addr));
if(result)
return -1;
printf("%d\n",result);
result=listen(sock,SOMAXCONN);
if(result==SOCKET_ERROR)
return -1;
printf("%d\n",result);
sockaddr adr;
int len;
// WaitForSingleObject((HANDLE)sock,-1);
len=sizeof(adr);
while(1)
{
result=accept(sock,&adr,&len);
printf("%d\n",result);
/* char buf[4096];
buf[recv(sock,buf,4096,0)]=0;
*/
if(result==INVALID_SOCKET)
getchar();
/*if(!result)
return;*/
}
printf("Hello World!\n");
getchar();
WSACleanup();
return ;
}#include "stdafx.h"
#include "winsock2.h"
SOCKET sock;
sockaddr_in svr;
int nSockErr;
void SocketError(int no)
{
switch(no)
{
case WSA_IO_INCOMPLETE:
MessageBox(NULL,"Overlapped I/O event object not in signaled state. ","Socket Error!",MB_OK);
return;
/* case a:
MessageBox(NULL,"A socket operation was attempted to an unreachable host. See WSAENETUNREACH","Socket Error!",MB_OK);*/
}
}
//CLIENTint main(int argc, char* argv[])
{
WSADATA wsadata;
int result=0;
if(WSAStartup(MAKEWORD(2,0),&wsadata))
{
MessageBox(NULL,"Your system does not support WinSocket2!","Error!",MB_OK);
return -1;
}
if(wsadata.wVersion!=MAKEWORD(2,0))
{
MessageBox(NULL,"Your system does not support WinSocket2!","Error!",MB_OK);
WSACleanup();
return -2;
}
/* sock=socket(AF_INET,SOCK_STREAM,0);
addr.sin_family=AF_INET;
addr.sin_port=htons(0);
addr.sin_addr.s_addr=INADDR_ANY; result=bind(sock,(sockaddr*)&addr,sizeof(addr));
printf("%d\n",result);
if(result)
return -1;*/
HOSTENT *a=gethostbyname("localhost");
memcpy(&(svr.sin_addr),a->h_addr_list,a->h_length);
svr.sin_family=a->h_addrtype;
svr.sin_port=htons(8080);
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock<0)
{
MessageBox(NULL,"Error open scoket!\n","Error",MB_OK);
return 0;
} while(1)
{
if (connect(sock,(struct sockaddr*)&svr,sizeof(svr))==SOCKET_ERROR)
{
int i;
printf("%d\n",i=WSAGetLastError());
SocketError(i);
} getchar();
};
int len;
result=connect(sock,(sockaddr*)&svr,sizeof(svr));
printf("%d\n",result);
getchar();
}