- 浏览: 816388 次
最新评论
-
netkongjian:
不错的报表工具知识分享![deyi]
Java报表工具功能对比 -
chao226:
CDREMPI这些呢
[医疗开发]医疗相关名词解析 -
luliangy:
童鞋你是不是和同名啊? 求QQ
IT女3年换5家公司的真实写照 -
tyuttjx:
大家写了这么多,有些建议虽然听起来不是那么入耳,但也不是完全没 ...
IT女3年换5家公司的真实写照 -
躁动的绵羊:
一年三个手术? 这么强悍! 能推荐下用什么牌子的? 印度神油吗 ...
IT女3年换5家公司的真实写照
文章列表
5.11. gethostname() ---我是谁?
甚至比getpeername() 还简单的函数是 gethostname()。它返回你程序所运行的机器的主机名字。然后你可以使用 gethostbyname() 以获得你的机器的 IP 地址。
下面是定义:
#include <unistd.h>
intgethostname(char *hostname, size_t size);
参数很简单:hostname是一个字符数组指针,它将在函数返回时保存
主机名。size是hostname 数组的字节长度。
函数调用成功时返回 0,失败时返回 -1, ...
- 2011-12-31 13:38
- 浏览 354
- 评论(0)
5.10. getpeername() ---你是谁?
这个函数太简单了。
它太简单了,以至我都不想单列一章。但是我还是这样做了。函数 getpeername() 告诉你在连接的流式套接字上谁在另外一边。函 数是这样的:
#include<sys/socket.h>
intgetpeername(int sockfd, struct sockaddr *addr, int *addrlen);
sockfd 是连接的流式套接字的描述符。addr是一个指向结构 struct sockaddr (或者是 structsockaddr_in) 的指针,它保存着连接的另一边 ...
- 2011-12-31 13:37
- 浏览 298
- 评论(0)
5.9. close()和shutdown() ---别让我再见到你的脸!
你已经整天都在发送(send()) 和接收 (recv()) 数据了,现在你准备关闭你的套接字描述符了。这很简单,你可以使用一般的 Unix 文件描述符的 close() 函数:
int close(sockfd);
它将防止套接字上更多的数据的读写。任何在另一端读写套接字的企 图都将返回错误信息。
如果你想在如何关闭套接字上有多一点的控制,你可以使用函数 shutdown()。它允许你将一定方向上的通讯或者双向的通讯(就象close()一样)关闭,你可以使用:
int shutdown(intsoc ...
- 2011-12-31 13:36
- 浏览 338
- 评论(0)
如果你是学生或者正打算去献血,那么你一定要看完,因为大部分学生太幼稚了。 一位有良心的老医生为你揭开献血惊人内幕:我作为一个有良知的人,不得不为我的朋友们告知这一事实,耐心看完,你会心寒。最近关于无偿献血无损于身体的谬论铺天盖地,作为一个普通的医务工作者,我有义务做一个合理的解释。一、首先什么是血液?血液所含的三种血细胞分别是;红细胞,白细胞,血小板。血液的每一种组成都它特殊的功能。......以下省略,我挑主要的说。二、献血会造成血液功能的弱化甚至丧失。简单的讲,红细胞的减少会使身体各部分器官得不到足够的氧气,细胞的各项生命功能无法正常发挥,献血后产生头晕现象就是因为脑部没有得到足够的氧气。白 ...
- 2011-12-31 10:57
- 浏览 644
- 评论(0)
5.8. sendto()和recvfrom() ---和我说话,数据报
“这很不错啊”,你说,“但是你还没有讲无连接数据报套接字呢?” 没问题,现在我们开始这个内容。
既然数据报套接字不是连接到远程主机的,那么在我们发送一个包之前需要什么信息呢? 不错,是目标地址!
sendto()函数原型:
int sendto(intsockfd, const void *msg, int len, unsigned int flags,
const struct sockaddr *to, socklen_ttolen);
你已经看到了,除了另外的两个信息外,其余的和函数 se ...
- 2011-12-30 17:37
- 浏览 573
- 评论(0)
5.7. send() 和 recv() ---跟我说话,宝贝!
这两个函数用于流式套接字或者数据报套接字的通讯。
send()函数原型:
int send(intsockfd, const void *msg, int len, int flags);
sockfd 是你想发送数据的套接字描述符(或者是调用 socket() 或者是accept() 返回的。)msg 是指向你想发送的数据的指针。len是数据的长度。把 flags 设置为 0 就可以了。(详细的资料请看 send() 的 man page)。
下面是一些示例代码:
char *msg = “Beejwa ...
- 2011-12-30 17:35
- 浏览 492
- 评论(0)
5.6. accept() ---“谢谢你来调用端口3490”
准备好了,系统调用accept() 会有点古怪的地方的!你可以想象发生这样的事情:有人从很远的地方通过一个你在侦听 (listen()) 的端口连接(connect()) 到你的机器。它的连接将加入到等待接受 (accept()) 的队列中。你调用accept() 告诉它你有空闲的连接。它将返回一个新的套接字文件描述符!这样你就有两个套接字了,原来的一个还在侦听你的那个端口,新的在准备发送 (send()) 和接收 (recv()) 数据。这就是这个过程!
函数原型:
#include<sys/types.h& ...
- 2011-12-30 11:13
- 浏览 600
- 评论(0)
5.5. listen() ---如果有“人”,请叫我?
是换换内容得时候了。假如你不希望与远程的一个地址相连,或者说, 仅仅是将它踢开,那你就需要等待接入请求并且用各种方法处理它们。处理过程分两步:首先,监听--listen(),然后,你接受--accept()
函数原型:
int listen(intsockfd, int backlog);
sockfd 是调用socket() 返回的套接字文件描述符。backlog 是在进入队列中允许的连接数目。什么意思呢? 进入的连接是在队列中一直等待直到你接受 (accept() 请看下面的文章)连接。它们的数目限制于队列的允许。 ...
- 2011-12-29 11:27
- 浏览 518
- 评论(0)
5.4. connect() ---嘿,是你吗?
现在我们假设你是个telnet 程序。你的用户命令你得到套接字的文件 描述符。你听从命令调用了socket()。下一步,你的用户告诉你通过端口 23(标准 telnet 端口)连接到"10.12.110.57"。你该怎么做呢? 幸运的是,你正在阅读 connect()--如何连接到远程主机这一章。你可不想让你的用户失望。
下面是他的原型:
#include<sys/types.h>
#include<sys/socket.h>
connect(intsockfd, struct ...
- 2011-12-28 12:34
- 浏览 631
- 评论(0)
翻译了那么多章的《Beej’s Guide Network to Programming》我们有必要自己动手写一个简单的客户端和服务器端的程序!
Client Side:
getaddrinfo() -> socket() -> connect() -> recv()
code:#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#in ...
- 2011-12-27 23:58
- 浏览 630
- 评论(0)
翻译了那么多章的《Beej’s Guide Network to Programming》我们有必要自己动手写一个简单的客户端和服务器端的程序!
Client Side:
getaddrinfo() -> socket() -> connect() -> recv()
code:#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#in ...
- 2011-12-27 23:58
- 浏览 550
- 评论(0)
5.3. bind() ---在那个端口?
一旦你有一个套接字,你可能要将套接字和机器上的一定的端口关联起来。(如果你想用listen()来侦听一定端口的数据,这是必要一步---比如,开始玩多人网络游戏告诉你要连接到192.168.5.10的3490端口) 使用的端口号是由内核相匹配传入的数据包到某个进程的socket描述符。如果你只想用connect()(因为你是客户端,不是服务器端),那么这个步骤没有必要。但是无论如何,请继续读下去。
下面是他的原型:
#include<sys/types.h>
#include<sys/socket.h>
i ...
- 2011-12-27 16:32
- 浏览 513
- 评论(0)
OCMock 测试类方法
罗朝辉(http://blog.csdn.net/kesalin)
CC许可,转载请注明出处
使用 OCMock 进行 unit test 时,我们无法 stub 或 expect 类方法,那么又该怎样测试类方法呢?下面是一个解决办法:在测试类中的非类方法 wrap 一下类方法,然后测试 wrap 方法。
比如:Utilities 有个类方法:+ (NSString *) stringDate:(NSDate *)date withForamt:(NSString *)dateFormat;
比如:
我们在 UtilitiesTests 测试类中新建一个 ...
- 2011-12-27 14:25
- 浏览 986
- 评论(0)
在Dock上添加最近使用的应用程序
作者:李笑来 来源:http://www.lixiaolai.com/archives/10939.html
有一个特别有用的Stack,“最近打开过的项目”,建立方法如下:
1. 打开Terminal,输入以下命令
defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile&quo ...
- 2011-12-27 12:37
- 浏览 812
- 评论(0)
Error: 1175 SQLSTATE: HY000 (ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE)
Message: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
Solution:
SETSQL_SAFE_UPDATES= 0;
update T set col = 'xxx' where condition ……;
- 2011-12-27 11:00
- 浏览 731
- 评论(0)