socket编程的原理呢?
(1)客户端
 ①建立客户端的Socket,确定要连接的服务器的主机名和端口。
 ②发送连接请求到服务器,并等待服务器的回馈信息。
 ③连接成功后,与服务器进行数据的交互。
 ④数据处理完毕后,关闭自身的Socket连接
(2)服务器端
 ①建立服务器端的Socket,开始侦听整个网络中的连接请求。
 ②当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。
③当完成通信后,服务器关闭与客户端的Socket连接。
老师给了socket编程实验的client,server两个程序代码的实例,但是下载下来之后不懂怎么运行。
别用VC环境 = =VC的环境都十年前的东西了。
WINSOCK2是近4.5年才出来的。
要么你配置下个WinSock2.h,要么换个环境,要么就改下代码用winsock.h
SOCKET编程
#include <string.h> 
#include <winsock.h> 
#include <windows.h> 
#include <iostream.h> 
#ment (lib,"ws2_32.lib") 
int main (int argc, char *argv[]) 
{ 
int iportFrom,iportTo; 
int testsocket; 
int iopenedport = 0; 
struct sockaddr_in target_addr; 
WSADATA wsaData; 
WORD wVersionRequested=MAKEWORD(1,1); 
if (argc <= 3) 
{ 
cout << "使用格式 : " << argv[0] << " 主机IP地址 开始端口号 结束端口号
" << endl; 
exit(1); 
} 
if (atoi (argv[2]) > atoi (argv[3])) 
{ 
cout << "错误!开始端口号必须小于结束端口号" << endl; 
exit(1); 
} 
else 
{ 
if (WSAStartup (wVersionRequested , &wsaData) ) 
{ 
cout << "连接socket库失败,请检查版本号是否为1.1
" << endl; 
exit(1); 
} 
iportFrom=atoi (argv[2]); 
iportTo=atoi (argv[3]); 
for (int i=iportFrom; i <= iportTo; i++) 
{ 
cout << "正在建立socket................................" << endl; 
if ((testsocket=socket (AF_INET,SOCK_STREAM,0) ) == INVALID_SOCKET) 
{ 
cout << "Socket建立失败!" << endl; 
exit(0); 
} 
target_addr.sin_family = AF_INET; 
target_addr.sin_port = htons(i); 
target_addr.sin_addr.s_addr = _addr (argv[1]); 
cout << "正在扫描端口:" << i << endl; 
if (connect (testsocket, (struct sockaddr *) &target_addr, sizeof(struct sockaddr)) == SOCKET_ERROR) 
cout << "端口" << i << "关闭!" << endl; 
else 
{ 
iopenedport++; 
cout << "端口" << i << "开放
" << endl; 
} 
} 
cout << "目标主机" << argv[1] << "从" << iportFrom << "--" << iportTo << "共有" << iopenedport << "个端口开放" << endl; 
closesocket (testsocket); 
WSACleanup(); 
} 
return 0; 
} 
vc6.0 下 编译