刚学网络编程,搞不懂这个问题。还有,是不是16位的程序(主函数是main()的那种)就不能用winsock了,那么应该用什么呢?刚学有很多不懂的地方,以后请大家多多关照。
解决方案 »
- OnEraseBkgnd 和DrawItem
- 使用afxsock.h和winsock2.h有什么区别??
- *** closesocket(s)与shutdown(s,type)的区别 100分 ***
- 请问如何把CString s[10];这样的数组清空,这时候为什么不能够用ZeroMemory()函数?
- 声音播放求助
- 请问在vc中怎样使系统发出一声“嘟”?
- 菜鸟问题,请帮忙.
- 请问如何得到其他网段设备的MAC地址(除了读路由器的ARP表)?
- 关于 CListCtrl 控件和属性页的问题
- 5k~10k的程序员请进!
- 我在Clone时怎么会出错,提示“当前记录集不支持书签”???
- 如何得到toolbar上每一个按钮的坐标?
winsock.h,winsock2.h 是SDK用的头文件,afxsock.h应该是MFC的吧。
在控制台应用下是可以用这些头文件的,和窗口应用没多大区别。
#include <winsock.h>void getIP();int main()
{
getIP(); return 0;
}void getIP()
{
char hostname[128];
if(gethostname(hostname,128)==0)
{
hostent *phost;
phost=gethostbyname(hostname);
cout<<hostname<<endl;
for(int j=0;j<4;j++)
{
if(j>0)
cout<<".";
cout<<phost->h_addr_list[0][j];
}
cout<<endl;
}
}为什么显示如下错误:Compiling...
getIP.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/getIP.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
不过gethostname(hostname,128)==0这个语句总是为false,不知道为什么?
#include <winsock2.h>#pragma comment(lib,"WS2_32.lib")这样应该就可以了
WSAStartup(MAKEWORD( 1, 1 ), &wsadata );以及
WSACleanup();谢谢热心人