VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Winsock程序设计初步之<三> 源程序实例(2)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

//A simplest web client

//Written by Shen zhiliang for learning Winsock & HTTP

//[email protected]

//1998.7.29

#include "winsock.h"

#include "stdio.h"

#define BUFLEN 4096

void SocketError(char * call)

{

fprintf(stderr," WinSock Error# function: %s, error code:%ld\n",call,WSAGetLastError());

}

main(int argc,char ** argv)

{

int iRes,iPort,iTmp;

SOCKET s,rs;

SOCKADDR_IN sin,rsin;

WSADATA wsad;

WORD wVersionReq;

char recvBuf[BUFLEN];

if(argc<4)

{

fprintf(stderr,"Usage: sockserver ip port message\n");

return -1;

}

if(inet_addr(argv[1])==INADDR_NONE)

{

fprintf(stderr,"Error ip gaving\n");

return -1;

}

iPort=0;

iPort=atoi(argv[2]);

sin.sin_addr.s_addr=inet_addr(argv[1]);

sin.sin_family=PF_INET;

sin.sin_port=htons(iPort);

if(iPort<=0)

{

fprintf(stderr,"must specify a number for port\n");

return -1;

}

wVersionReq=MAKEWORD(1,1);

iRes=WSAStartup(wVersionReq,&wsad);

if(iRes!=0)

{

SocketError("WSAStartup()");

return -1;

}

s=socket(PF_INET,SOCK_STREAM,0);

if(s==INVALID_SOCKET)

{

SocketError("socket()");

return -1;

}

iTmp=sizeof(sin);

fprintf(stderr,"WinSock Client Start......\n");

if(connect(s,(LPSOCKADDR)&sin,iTmp)==SOCKET_ERROR)

{

SocketError("connect()");

closesocket(s);

WSACleanup();

return -1;

}

strcpy(recvBuf,argv[3]);

strcat(recvBuf,"\r\n\r\n");

iRes=send(s,recvBuf,strlen(recvBuf),0);

if(iRes==SOCKET_ERROR)

{

SocketError("send()");

closesocket(s);

WSACleanup();

return -1;

}

printf("Sent Data:\n------------------\n%s\n------------------\n",recvBuf);

FILE * fp=fopen("send.dat","a+b");

if(fp==NULL)

return -1;

iRes=recv(s,recvBuf,BUFLEN,0);

while(iRes!=SOCKET_ERROR&&iRes!=0)

{

printf("Received Data:\n------------------\n%s\n------------------\n",recvBuf);

fwrite(recvBuf,sizeof(char),iRes,fp);

iRes=recv(s,recvBuf,BUFLEN,0);

}

fclose(fp);

closesocket(s);

WSACleanup();

return 0;

}




相关文章

相关软件