stpeace的专栏

接纳自己,提升认知,拥抱不确定性。

某哥一句话点醒我什么是网络编程------不过就是读写文件而已(大道至简)

上次我跟某哥说,我对网络编程不太熟悉,结果他说:              “网络编程很简单:在学校里写程序,你把数据写入文件,从文件中读取数据; 在公司里写程序,你把数据写入socket,  从socket中读取数据。两者道理是一样的!”

2013-10-29 22:59:10

阅读数:6846

评论数:2

connect函数详解

不得不说,客户端的connect函数和服务端的accept函数是一对好基友,如果客户端没有去connect, 那么服务端的accept会一直在那里傻傻地痴痴地等待,我们先来看看connect函数的原型吧: WINSOCK_API_LINKAGE int WSAAPI connect( ...

2013-10-29 22:49:17

阅读数:15298

评论数:16

closesocket函数和WSACleanup函数

closesocket函数的作用和socket函数的作用相反,释放为套接字分配的资源。        WSACleanup函数和WSAStartup函数的作用相反,终止对套接字库的使用。        用不着多说。

2013-10-29 22:37:50

阅读数:8769

评论数:0

recv函数详解

别只顾着send数据啊,你也得接收一些数据啊,来而不往非礼也!如何接收?请看recv函数原型: WINSOCK_API_LINKAGE int WSAAPI recv( SOCKET s, char FAR * buf, int len, int flags ...

2013-10-29 22:06:32

阅读数:8296

评论数:2

send函数详解

服务端都已经accept了客户端的请求,于是客户端与服务端也就勾搭上了,可以暧昧了,可以发信息了,怎么发送呢?用send函数即可,我们来看看send函数的原型: WINSOCK_API_LINKAGE int WSAAPI send( SOCKET s, const char FA...

2013-10-29 21:58:45

阅读数:11699

评论数:6

accept函数详解

既然服务端已经很虔诚了,很真诚了,处于倾听状态,那么该是去尝试接受客户端请求的时候了,别只顾着倾听,不去接纳别人。接纳客户端请求的函数是accept, 我们先来看看函数的原型: WINSOCK_API_LINKAGE SOCKET WSAAPI accept( SOCKET s, ...

2013-10-29 00:08:47

阅读数:43602

评论数:20

listen函数详解

套接字与“地方”绑定好了后,对于服务端而言(这里是TCP情况),自然就应该乖乖地去聆听,聆听客户端的需求,否则怎么会叫服务客户呢?如何去聆听呢?很简单,这个单词你早就学过了,那就是listen, 我们来看看listen函数的原型:  int PASCAL FAR listen (SOCKET s,...

2013-10-28 23:49:31

阅读数:20599

评论数:4

bind函数详解

前面我们已经说了, 套接字也创建了, “地方”也定义了,下面就需要将socket放置在这个“地方”(TCP),将他们紧紧地捆绑在一起,用bind函数吧, 我们来看看函数原型: int PASCAL FAR bind (SOCKET s, const struct sockaddr FAR *add...

2013-10-28 23:33:45

阅读数:29226

评论数:0

SOCKADDR_IN结构体的作用是:定义“地方”,宣誓主权

套接字也创建了,总得要为套接字安排个地方吧,SOCKADDR_IN结构体就的作用就是定义“地方”,宣誓对这个“地方”拥有主权,比如下列用法: addrSrv.sin_family = AF_INET; // TCP/IP协议族 addrSrv.sin_addr.S_un.S_addr = in...

2013-10-28 23:07:34

阅读数:8021

评论数:0

socket函数详解 (有了新的认识)

我们先来看一下socket函数的原型: SOCKET PASCAL FAR socket (int af, int type, int protocol);       典型的调用方式为:  unsigned int sockSrv = socket(AF_INET, SOCK_STREAM...

2013-10-27 23:40:31

阅读数:8818

评论数:0

WSAStartup函数的用途

我们先来看看WSAStartup函数的原型 int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);      可以这么理解,第一个参数提供必要信息(为了加载套接字库),第二个参数获取相关信息(获取相关信息)。看看...

2013-10-27 23:25:27

阅读数:7698

评论数:0

winsock.h中的MAKEWORD宏

什么是WORD? 看看就知道了:typedef unsigned short      WORD;        那什么是MAKEWORD宏呢?先看结果: #include #include int main() { printf("%x\n", MAKE...

2013-10-27 22:15:47

阅读数:6189

评论数:0

#include <winsock2.h> #pragma comment(lib, "ws2_32.lib") 与套接字(socket)

winsock2.h是套接字接口, ws2_32.lib是套接字实现。那么什么是套接字呢?套接字就是一个“孔”,应用程序只管网这个“孔”里面插入数据,并从这个“孔”里面取出数据即可。      看看什么是套接字:         应用程序只管与套接字进行数据交互,至于数据是怎么传输的,应...

2013-10-27 22:01:20

阅读数:10977

评论数:0

RSA算法的简要实现(其实原理非常简单)

前面的博文(转载阮一峰)已经讲了RSA算法的基本原理。很久以前的博文曾涉及过模幂算法,今天终于可以登台亮相了,先回顾一下模幂算法的程序吧: #include using namespace std; // 返回值: a的b次方,然后对n求模 int getMod(int a, int b, in...

2013-10-27 17:28:21

阅读数:7438

评论数:3

strtok在分割字符串中的重要用途

#include #include int main() { char str[] = " I # # love you ## more than ### you can imagine!#"; char delims[] = "#...

2013-10-27 14:49:57

阅读数:5579

评论数:0

如何利用C语言来获取当地时间和UTC时间? (设当地时间是北京时间)

#include #include int main() { time_t t = time(NULL); tm *tp = localtime(&t); // 北京时间 printf("%d/%d/%d\n", tp...

2013-10-27 13:39:19

阅读数:17587

评论数:0

利用sprintf和sscanf实现十六进制和十进制之间的相互转换

#include int main() { char s[100] = {0}; sprintf(s, "%x", 15); printf("%s\n", s); // f char str[100] = "f&quo...

2013-10-27 12:49:26

阅读数:22555

评论数:2

%02x与%2x

代码做得多的人,肯定经常见到%02x这个东西,下面写个小程序学习一下: #include int main() { int i; for(i = -20; i < 21; i++) { printf("%2x\n", i); print...

2013-10-27 12:29:59

阅读数:14587

评论数:0

RSA算法完全解析(地球上最重要的算法之一)

转自:阮一峰的网络日志(一、二)       强力推荐 http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_p...

2013-10-26 00:06:10

阅读数:5613

评论数:0

find 函数和string :: npos 的用法

设1.txt文件内容如下: name = baidu url = www.baidu.com          看程序: #include #include #include using namespace std; int main() { ifstream in("1.tx...

2013-10-25 23:24:58

阅读数:14323

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭