dychenyi/
共539个网摘 [
1 ...
2 3 4 5 6 7 8 9 10 11 12 ...
18 ]
上一页 |
下一页 |
访问dychenyi的个人空间
dychenyi收录,时间:2008-3-13 14:52:17 | 相关网摘,我也收藏
和 recv()调用。“但是...”,你可能有很大的疑惑,“如果它是个文件描述符,那么为什 么不用一般调用read()和write()来进行套接字通讯?”简单的答案是:“你可以使用!”。详细的答案是:“你可以,但是使用send()和recv()让你更好的控制数据传输。”存在这样一个情况:在我们的世界上,有很多种套接字。有DARPA Internet 地址 (Internet 套接字),本地节点的路径名 (Unix套接字),CCITT X.25地址 (你可以将X.25 套接字完全忽略)。也许在你的Unix 机器上还有其它的。我们在这里只讲第一种:Internet 套接字。
--------------------------------------------------------------------------------
Internet 套接字的两种类型
什么意思?有两种类型的Internet 套接字?是的。不,我在撒谎。其实还有很多,但是我可不想吓着你。我们这里只讲两种。除了这些, 我打算另外介绍的 "Raw Sockets" 也是非常强大的,很值得查阅。
那么这两种类型是什么呢?一种是"Stream Sockets"(流格式),另外一种是"Datagram Sockets"(数据包格式)。我们以后谈到它们的时候也会用到 "SOCK_STREAM" 和 "SOCK_DGRAM"。数据报套接字有时也叫“无连接套接字”(如果你确实要连接的时候可以用connect()。) 流式套接字是可靠的双向通讯的数据流。如果你向套接字按顺序输出“1,2”,那么它们将按顺序“1,2”到达另一边。它们是无错误的传递的,有自己的错误控制,在此不讨论。
有什么在使用流式套接字?你可能听说过 telnet,不是吗?它就使用流式套接字。你需要你所输入的字符按顺序到达,不是吗?同样,WWW浏览器使用的 HTTP 协议也使
http://www.chinaunix.net/jh/25/48248.html
dychenyi收录,时间:2008-3-12 16:43:31 | 相关网摘,我也收藏
虽然结论都是“不需要转换”,怎么说法有真么多不同啊?
双反斜杠其实只是给编译器看的,就比如这样一个字符串"\n\\",编译器编译的时候,看到第一个\并不知含义,当读到n的时候,知道是一个换行,就直接在编译的时刻,将\n这两个字节的东西替换成了一个字节的十六进制的0A,同样的\\也是在编译时刻就被直接替换成了\,也就是一个字节的5C。
这一点你可以在编译完成后的exe里面用ultra-edit打开进行证实,比如写一句const char* p = "这是测试用的\\\n",编译完成以后,用ultra-edit查找“这是测试用的”,找到后看看后面两个字节是不是5C 0A。
正是因为"\\"这类的转译字符只是给编译器看的,所以内存里面实际上也是不存在“双反斜杠”的,编辑框取到"d:\asd.txt",而这个就是内存中本应该存放的格式,不需要转换。
(printf或者scanf里面的"%%"例外,这个不是给编译器看的,而是这两个函数自己做的转换)
http://topic.csdn.net/u/20080307/08/09e2509c-897e-4d48-a2c1-5831bd1db2fc.html?seed=1362547280
共539个网摘 [
1 ...
2 3 4 5 6 7 8 9 10 11 12 ...
18 ]
上一页 |
下一页