用C++/SDK如何进行网络编程? socket常用的只要几个函数就够了,很简单的. 自己看msdn很容易的.我这里有汇编例程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把socket的流程与原理掌握了,在背几个函数,就可以建立最基本的socket程序了。 To xiaoy; 给200分,我发一个WinSock2.2的例程。 to xioay: 给 190分, 就发, 呵呵 #include "stdafx.h"#include "winsock.h"#define Server "public1.ptt.js.cn"#define COMMAND "HELO\r\n\r\n"#define PORT 25int SockSendAll(SOCKET s,LPCSTR buf,UINT length){UINT nSent=0;int c_send;while(nSent<length) {c_send=send(s,buf+nSent,length-nSent>1024? 1024:length-nSent,0);if(c_send<0)return -1;nSent+=c_send;}return nSent;}int main(){int rc;WSADATA ws;rc = WSAStartup(0x0101,&ws);if(rc!=0) {#ifdef _DEBUGprintf("Error :WinSock initialize failed\n");#endifreturn -1;}struct sockaddr_in sa;HOSTENT *hp;SOCKET sock=NULL;sock =socket(AF_INET,SOCK_STREAM,0);if(sock==INVALID_SOCKET ) {#ifdef _DEBUGprintf("Error :Can't initialize TCP/IP socket\n");#endifreturn INVALID_SOCKET;}hp=gethostbyname(Server);if(!hp) {#ifdef _DEBUGprintf("Error :Can't find this server :%s\n",Server);#endifreturn INVALID_SOCKET;}sa.sin_family = AF_INET;sa.sin_addr.s_addr = *(unsigned long*)hp->h_addr; /* Server IP */sa.sin_port = htons(PORT); /* Server Port number */if (connect(sock,(struct sockaddr*)&sa,sizeof(sa))!=0){#ifdef _DEBUGprintf("Error :Connection failed\n");#endifreturn INVALID_SOCKET;} SockSendAll(sock,COMMAND,sizeof(COMMAND)-1); char recvbuf[4096]; int c_Len=0;int c_Recv=0;c_Recv=recv(sock,recvbuf+c_Len,4096-c_Len>1024? 1024:4096-c_Len,0);//recv length*(recvbuf+c_Recv)=0; printf("%s\n",recvbuf);} 求助 zlib静态库调用? VC++ 线程新问题!!!!!! 求教插入<a>标签 求BCG以前免费开放源码的版本,带appwizard的 完全免费电影下载提供 ftp,http下载等 急!!象0xFF和0x32B2这种分别占一个字节和两个字节的数据应该分别用什么数据类型来保存? [求助]如何使用两个图象列表 学校里要开数学建摸课,各位前辈说说看有没有必要去听听? 问题很简单,大家都来看啊,白送分啊! 如何对ISAPI进行异步文件操作? 如何实现在view中ellipse拖动? 请教图形高手,一个简单的问题?
给200分,我发一个WinSock2.2的例程。
#include "stdafx.h"
#include "winsock.h"
#define Server "public1.ptt.js.cn"
#define COMMAND "HELO\r\n\r\n"
#define PORT 25
int SockSendAll(SOCKET s,LPCSTR buf,UINT length)
{
UINT nSent=0;
int c_send;
while(nSent<length) {
c_send=send(s,buf+nSent,length-nSent>1024? 1024:length-nSent,0);
if(c_send<0)
return -1;
nSent+=c_send;
}
return nSent;
}int main()
{
int rc;
WSADATA ws;
rc = WSAStartup(0x0101,&ws);if(rc!=0) {
#ifdef _DEBUG
printf("Error :WinSock initialize failed\n");
#endif
return -1;
}struct sockaddr_in sa;
HOSTENT *hp;
SOCKET sock=NULL;sock =socket(AF_INET,SOCK_STREAM,0);
if(sock==INVALID_SOCKET ) {
#ifdef _DEBUG
printf("Error :Can't initialize TCP/IP socket\n");
#endif
return INVALID_SOCKET;
}hp=gethostbyname(Server);
if(!hp) {
#ifdef _DEBUG
printf("Error :Can't find this server :%s\n",Server);
#endif
return INVALID_SOCKET;
}sa.sin_family = AF_INET;
sa.sin_addr.s_addr = *(unsigned long*)hp->h_addr; /* Server IP */
sa.sin_port = htons(PORT); /* Server Port number */if (connect(sock,(struct sockaddr*)&sa,sizeof(sa))!=0){
#ifdef _DEBUG
printf("Error :Connection failed\n");
#endif
return INVALID_SOCKET;
} SockSendAll(sock,COMMAND,sizeof(COMMAND)-1);
char recvbuf[4096];
int c_Len=0;
int c_Recv=0;
c_Recv=recv(sock,recvbuf+c_Len,4096-c_Len>1024? 1024:4096-c_Len,0);//recv length
*(recvbuf+c_Recv)=0;
printf("%s\n",recvbuf);
}