Winsock程序设计初步之<三> 源程序实例(2)

科技中介如何高效匹配技术供需?.docx 科技中介如何高效匹配技术供需? 立即下载

//A simplest web client

//Written by Shen zhiliang for learning Winsock & HTTP

//zhiliang@sina.com

//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;

}

!qhyb.rar 当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。 立即下载

相关推荐

政府科技管理部门如何实现科技成果高效转化?.docx

政府科技管理部门如何实现科技成果高效转化?

打印机服务器驱动程序修改,备份终端服务器上的打印机驱动及自定义纸张

用过终端服务(TS2000、2003)的都知道,客户端要能正常打印,必需在终端服务器上安装对应的打印机驱动程序,以及自定义纸张格式都是要在服务器上设置好。当终端服务器的OS需要重装,没做好这些设置的备份,对于重装OS后打印机驱动安装及自定义纸张设置工作量会相对大。我们可以通过以下的方法备份驱动与纸张设置。1、确认打印机驱动程序安装路径,默认是在系统盘的%windir%\system32\spool...

weixin_35851553的博客 1268

国有企业如何推动科技创新与产业升级融合?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

计算机必须设置默认打印机,win10系统禁止更改默认打印机设置的还原技巧

有关win10系统禁止更改默认打印机设置的操作方法想必大家有所耳闻。但是能够对win10系统禁止更改默认打印机设置进行实际操作的人却不多。其实解决win10系统禁止更改默认打印机设置的问题也不是难事,小编这里提示两点:1、使用组策略和开始菜单设置配合进行,这种方法的好处是不会关闭所有控制面板项目,针对性比较好 2、通过开始菜单,自定义 先把开始菜单上的打印机项关掉,不然知道的一改这里又有机会了;;...

weixin_39608988的博客 3199

注册表 关闭打印机服务器,win7系统添加打印机无Print Spooler服务无注册表的解决方法...

今天小编告诉大家如何处理win7系统添加打印机无Print Spooler服务无注册表的问题,可能很多用户都不知道怎么处理win7系统添加打印机无Print Spooler服务无注册表的问题,但当我们遇到win7系统添加打印机无Print Spooler服务无注册表的问题怎么办呢?遇到这种情况不要着急,我们依照  键盘上单击快捷方式window+R 键,输入regedit,打开注册表编辑器。找到[...

weixin_31699893的博客 2163

打印机报错0x0000011b:从Windows更新补丁根源到注册表修复终极指南

详尽教程,教您如何修复 打印机报错0x0000011b。本文涵盖因Windows更新补丁导致的共享打印机无法连接问题,提供修改注册表、卸载更新及使用修复工具等多种有效解决方法,助您轻松解决0x0000011b错误。

2401_89926894的博客 2779

亲测有效:局域网共享打印机出现,windows无法连接到打印机错误码0x0000011b

打印机局域网共享,出现“windows无法连接到打印机错误码0x0000011b”的解决方案。

weixin_62707809的博客 26万+

如何用VC++和Visual Foxpro进行ActiveX数据通讯

如何用VC++和Visual Foxpro进行ActiveX数据通讯 粟利民 孙强 摘要 本文描述了如何利用自动服务器Active Automation,在VC++中与Visual Foxpro进行数据通讯的方法。通过自动服务器,圆满地解决了各种数据类型的交换问题。 关键词 VC++,Visual Foxpro,ActiveX Automation,数据通讯 在进行软件开发的过程中,如何在不同的编

蝈蝈俊.net 1825

Winsock程序设计初步<> Winsock编程原理

      本课程主要讲Windows中TCP/IP编程接口Winsock,版本为1.1。高版本的Winsock实际与1.1版相差不多,主要是进行了一些扩充,如可超越TCP/IP协议直接用socket来实现IPX、NETBIOS等其它通信协议。这叙述方便在本文的其余部分中提到的Winsock指的就是Winsock1.1。通过Winsock可实现点对点或广播通信程序,实际这两者之间的区别不大

cnviolet的专栏 1474

Winsock程序设计初步<> Winsock函数用法说明

WSAStartup()连结应用程序与Winsock.DLL 的第一个函数。格 式: int WSAStartup( WORD wVersionRequested,LPWSADATA lpWSAData )参 数:wVersionRequested 欲使用的 Windows Sockets API 版本lpWSAData 指向 WSADATA 资料的指标传回值:成功

cnviolet的专栏 1256

Winsock程序设计初步<> 源程序实例()

 //A simplest web server//Written by Shen zhiliang for learning Winsock & HTTPfile://zhiliang@sina.com #include "winsock.h"#include "stdio.h"#include "conio.h"#include "io.h"#define

cnviolet的专栏 1145

基于MFC的大型数据文件处理方法

      在Visual C++中,MFC(微软基础类库)提供了CFile和CStdioFile两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStdioFile提供了基于字符串流的文件操作,功能类似于C语言中的fgets()和fputs()函数。但是,使用这两个类进行文件操作时,对于一次文件读写的数据量

cnviolet的专栏 1110

实现类似IE的打印网页功能

       当我们点击工具条上的“打印”按钮实现IE的打印函数功能时,发现没有“打印机安 装”对话框显示出来,程序会自动开始打印文档。这个特点也被用于Microsoft Word中。 在应用程序中实现这个特点,编码如下: void CMyBrowser::OnPrint() { LPOLECOMMANDTARGET pCmdTarg = NULL; m_pDisp = m_WebBrowser

cnviolet的专栏 996

将图象列表转换成设备无关位图

       在我的PrintTree例子中,我想打印彩色的树控制.对于文本很容易,但是图标就不简单了.我试着将图象列表转换成DIB,但是我真正需要的是一个方法,能够取出一个ICON的DIB,而不是整个图象列表。下面就是我使用的具体方法:HANDLE CAdvancedTreeCtrl::ImageToDIB( CImageList* pImageList, int iImageNumber, C

cnviolet的专栏 796

如何实现win9X进程间数据通讯技术

1、引言  在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效地进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换,就如同在WIN16中对本地进程进行读写操作一样。  典型的WIN16两进程可以通过共享内存来进行数据交换:(1)进程A将GlobalAlloc(GMEM_SHARE...)API分配一定长度的内存;(

cnviolet的专栏 760

科技中介服务如何实现数字化升级?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

上一篇: Winsock程序设计初步之<二> 源程序实例(一)
下一篇: Winsock程序设计初步之<四> Winsock函数用法说明
cnviolet
博客等级 码龄25年 10粉丝 15原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值