PageRenderTime 62ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/doc/libref.ypsilon.socket.html

http://ypsilon.googlecode.com/
HTML | 1694 lines | 1691 code | 3 blank | 0 comment | 0 complexity | 219921c3f1a3a8a795ae211cc29a02fd MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6. <title>Ypsilon API Reference</title>
  7. <meta name="generator" content="Ypsilon Document Maker 0.9" />
  8. <link href="base.css" rel="stylesheet" type="text/css" />
  9. </head>
  10. <body>
  11. <div class="top_jump_menu">
  12. &bull; <a href="http://code.google.com/p/ypsilon/">Project Home</a> &bull; <a href="index.html">Document Home</a> &bull; <a href="index.html#master_toc">Contents</a>
  13. </div>
  14. <div class="library_head">Library: (ypsilon socket)</div>
  15. <div class="library_body">
  16. <table class="abstract_box" border="0">
  17. <tr>
  18. <td>
  19. <div>This library provides an Internet socket interface.</div>
  20. </td>
  21. </tr>
  22. </table>
  23. </div>
  24. <div id="summaries"></div>
  25. <div class="library_body">
  26. <table class="subject_box" border="0" cellspacing="0" cellpadding="0">
  27. <caption class="subject_box_caption">Summaries:</caption>
  28. <tr>
  29. <td class="subject_td" nowrap>
  30. <span class="subject_identifier"><a href="#make-client-socket">make-client-socket</a></span>
  31. </td>
  32. <td class="subject_td">
  33. Returns a client socket connected to an Internet address
  34. </td>
  35. </tr>
  36. <tr>
  37. <td class="subject_td" nowrap>
  38. <span class="subject_identifier"><a href="#make-server-socket">make-server-socket</a></span>
  39. </td>
  40. <td class="subject_td">
  41. Returns a server socket waiting for connections
  42. </td>
  43. </tr>
  44. <tr>
  45. <td class="subject_td" nowrap>
  46. <span class="subject_identifier"><a href="#socket?">socket?</a></span>
  47. </td>
  48. <td class="subject_td">
  49. Returns #t if its argument is a socket, and otherwise returns #f
  50. </td>
  51. </tr>
  52. <tr>
  53. <td class="subject_td" nowrap>
  54. <span class="subject_identifier"><a href="#socket-port">socket-port</a></span>
  55. </td>
  56. <td class="subject_td">
  57. Returns a fresh binary input/output port associated with a socket
  58. </td>
  59. </tr>
  60. <tr>
  61. <td class="subject_td" nowrap>
  62. <span class="subject_identifier"><a href="#call-with-socket">call-with-socket</a></span>
  63. </td>
  64. <td class="subject_td">
  65. Calls a procedure with a socket as an argument
  66. </td>
  67. </tr>
  68. <tr>
  69. <td class="subject_td" nowrap>
  70. <span class="subject_identifier"><a href="#shutdown-output-port">shutdown-output-port</a></span>
  71. </td>
  72. <td class="subject_td">
  73. Shutdowns output connection of a socket that associated with a port
  74. </td>
  75. </tr>
  76. <tr>
  77. <td class="subject_td" nowrap>
  78. <span class="subject_identifier"><a href="#socket-accept">socket-accept</a></span>
  79. </td>
  80. <td class="subject_td">
  81. Wait for an incoming connection request, and returns a fresh connected client socket
  82. </td>
  83. </tr>
  84. <tr>
  85. <td class="subject_td" nowrap>
  86. <span class="subject_identifier"><a href="#socket-send">socket-send</a></span>
  87. </td>
  88. <td class="subject_td">
  89. Sends a binary data block to a socket
  90. </td>
  91. </tr>
  92. <tr>
  93. <td class="subject_td" nowrap>
  94. <span class="subject_identifier"><a href="#socket-recv">socket-recv</a></span>
  95. </td>
  96. <td class="subject_td">
  97. Receives a binary data block from a socket
  98. </td>
  99. </tr>
  100. <tr>
  101. <td class="subject_td" nowrap>
  102. <span class="subject_identifier"><a href="#socket-shutdown">socket-shutdown</a></span>
  103. </td>
  104. <td class="subject_td">
  105. Shutdowns a socket
  106. </td>
  107. </tr>
  108. <tr>
  109. <td class="subject_td" nowrap>
  110. <span class="subject_identifier"><a href="#socket-close">socket-close</a></span>
  111. </td>
  112. <td class="subject_td">
  113. Closes a socket
  114. </td>
  115. </tr>
  116. <tr>
  117. <td class="subject_td" nowrap>
  118. <span class="subject_identifier"><a href="#AF_UNSPEC">AF_UNSPEC</a></span>
  119. </td>
  120. <td class="subject_td_na">
  121. &lt;constant&gt;
  122. </td>
  123. </tr>
  124. <tr>
  125. <td class="subject_td" nowrap>
  126. <span class="subject_identifier"><a href="#AF_INET">AF_INET</a></span>
  127. </td>
  128. <td class="subject_td_na">
  129. &lt;constant&gt;
  130. </td>
  131. </tr>
  132. <tr>
  133. <td class="subject_td" nowrap>
  134. <span class="subject_identifier"><a href="#AF_INET6">AF_INET6</a></span>
  135. </td>
  136. <td class="subject_td_na">
  137. &lt;constant&gt;
  138. </td>
  139. </tr>
  140. <tr>
  141. <td class="subject_td" nowrap>
  142. <span class="subject_identifier"><a href="#SOCK_STREAM">SOCK_STREAM</a></span>
  143. </td>
  144. <td class="subject_td_na">
  145. &lt;constant&gt;
  146. </td>
  147. </tr>
  148. <tr>
  149. <td class="subject_td" nowrap>
  150. <span class="subject_identifier"><a href="#SOCK_DGRAM">SOCK_DGRAM</a></span>
  151. </td>
  152. <td class="subject_td_na">
  153. &lt;constant&gt;
  154. </td>
  155. </tr>
  156. <tr>
  157. <td class="subject_td" nowrap>
  158. <span class="subject_identifier"><a href="#SOCK_RAW">SOCK_RAW</a></span>
  159. </td>
  160. <td class="subject_td_na">
  161. &lt;constant&gt;
  162. </td>
  163. </tr>
  164. <tr>
  165. <td class="subject_td" nowrap>
  166. <span class="subject_identifier"><a href="#AI_ADDRCONFIG">AI_ADDRCONFIG</a></span>
  167. </td>
  168. <td class="subject_td_na">
  169. &lt;constant&gt;
  170. </td>
  171. </tr>
  172. <tr>
  173. <td class="subject_td" nowrap>
  174. <span class="subject_identifier"><a href="#AI_ALL">AI_ALL</a></span>
  175. </td>
  176. <td class="subject_td_na">
  177. &lt;constant&gt;
  178. </td>
  179. </tr>
  180. <tr>
  181. <td class="subject_td" nowrap>
  182. <span class="subject_identifier"><a href="#AI_CANONNAME">AI_CANONNAME</a></span>
  183. </td>
  184. <td class="subject_td_na">
  185. &lt;constant&gt;
  186. </td>
  187. </tr>
  188. <tr>
  189. <td class="subject_td" nowrap>
  190. <span class="subject_identifier"><a href="#AI_NUMERICHOST">AI_NUMERICHOST</a></span>
  191. </td>
  192. <td class="subject_td_na">
  193. &lt;constant&gt;
  194. </td>
  195. </tr>
  196. <tr>
  197. <td class="subject_td" nowrap>
  198. <span class="subject_identifier"><a href="#AI_NUMERICSERV">AI_NUMERICSERV</a></span>
  199. </td>
  200. <td class="subject_td_na">
  201. &lt;constant&gt;
  202. </td>
  203. </tr>
  204. <tr>
  205. <td class="subject_td" nowrap>
  206. <span class="subject_identifier"><a href="#AI_PASSIVE">AI_PASSIVE</a></span>
  207. </td>
  208. <td class="subject_td_na">
  209. &lt;constant&gt;
  210. </td>
  211. </tr>
  212. <tr>
  213. <td class="subject_td" nowrap>
  214. <span class="subject_identifier"><a href="#AI_V4MAPPED">AI_V4MAPPED</a></span>
  215. </td>
  216. <td class="subject_td_na">
  217. &lt;constant&gt;
  218. </td>
  219. </tr>
  220. <tr>
  221. <td class="subject_td" nowrap>
  222. <span class="subject_identifier"><a href="#IPPROTO_TCP">IPPROTO_TCP</a></span>
  223. </td>
  224. <td class="subject_td_na">
  225. &lt;constant&gt;
  226. </td>
  227. </tr>
  228. <tr>
  229. <td class="subject_td" nowrap>
  230. <span class="subject_identifier"><a href="#IPPROTO_UDP">IPPROTO_UDP</a></span>
  231. </td>
  232. <td class="subject_td_na">
  233. &lt;constant&gt;
  234. </td>
  235. </tr>
  236. <tr>
  237. <td class="subject_td" nowrap>
  238. <span class="subject_identifier"><a href="#IPPROTO_RAW">IPPROTO_RAW</a></span>
  239. </td>
  240. <td class="subject_td_na">
  241. &lt;constant&gt;
  242. </td>
  243. </tr>
  244. <tr>
  245. <td class="subject_td" nowrap>
  246. <span class="subject_identifier"><a href="#SHUT_RD">SHUT_RD</a></span>
  247. </td>
  248. <td class="subject_td_na">
  249. &lt;constant&gt;
  250. </td>
  251. </tr>
  252. <tr>
  253. <td class="subject_td" nowrap>
  254. <span class="subject_identifier"><a href="#SHUT_WR">SHUT_WR</a></span>
  255. </td>
  256. <td class="subject_td_na">
  257. &lt;constant&gt;
  258. </td>
  259. </tr>
  260. <tr>
  261. <td class="subject_td" nowrap>
  262. <span class="subject_identifier"><a href="#SHUT_RDWR">SHUT_RDWR</a></span>
  263. </td>
  264. <td class="subject_td_na">
  265. &lt;constant&gt;
  266. </td>
  267. </tr>
  268. <tr>
  269. <td class="subject_td" nowrap>
  270. <span class="subject_identifier"><a href="#MSG_OOB">MSG_OOB</a></span>
  271. </td>
  272. <td class="subject_td_na">
  273. &lt;constant&gt;
  274. </td>
  275. </tr>
  276. <tr>
  277. <td class="subject_td" nowrap>
  278. <span class="subject_identifier"><a href="#MSG_PEEK">MSG_PEEK</a></span>
  279. </td>
  280. <td class="subject_td_na">
  281. &lt;constant&gt;
  282. </td>
  283. </tr>
  284. <tr>
  285. <td class="subject_td" nowrap>
  286. <span class="subject_identifier"><a href="#MSG_DONTROUTE">MSG_DONTROUTE</a></span>
  287. </td>
  288. <td class="subject_td_na">
  289. &lt;constant&gt;
  290. </td>
  291. </tr>
  292. <tr>
  293. <td class="subject_td" nowrap>
  294. <span class="subject_identifier"><a href="#MSG_CTRUNC">MSG_CTRUNC</a></span>
  295. </td>
  296. <td class="subject_td_na">
  297. &lt;constant&gt;
  298. </td>
  299. </tr>
  300. <tr>
  301. <td class="subject_td" nowrap>
  302. <span class="subject_identifier"><a href="#MSG_PROBE">MSG_PROBE</a></span>
  303. </td>
  304. <td class="subject_td_na">
  305. &lt;constant&gt;
  306. </td>
  307. </tr>
  308. <tr>
  309. <td class="subject_td" nowrap>
  310. <span class="subject_identifier"><a href="#MSG_TRUNC">MSG_TRUNC</a></span>
  311. </td>
  312. <td class="subject_td_na">
  313. &lt;constant&gt;
  314. </td>
  315. </tr>
  316. <tr>
  317. <td class="subject_td" nowrap>
  318. <span class="subject_identifier"><a href="#MSG_DONTWAIT">MSG_DONTWAIT</a></span>
  319. </td>
  320. <td class="subject_td_na">
  321. &lt;constant&gt;
  322. </td>
  323. </tr>
  324. <tr>
  325. <td class="subject_td" nowrap>
  326. <span class="subject_identifier"><a href="#MSG_EOR">MSG_EOR</a></span>
  327. </td>
  328. <td class="subject_td_na">
  329. &lt;constant&gt;
  330. </td>
  331. </tr>
  332. <tr>
  333. <td class="subject_td" nowrap>
  334. <span class="subject_identifier"><a href="#MSG_WAITALL">MSG_WAITALL</a></span>
  335. </td>
  336. <td class="subject_td_na">
  337. &lt;constant&gt;
  338. </td>
  339. </tr>
  340. <tr>
  341. <td class="subject_td" nowrap>
  342. <span class="subject_identifier"><a href="#MSG_FIN">MSG_FIN</a></span>
  343. </td>
  344. <td class="subject_td_na">
  345. &lt;constant&gt;
  346. </td>
  347. </tr>
  348. <tr>
  349. <td class="subject_td" nowrap>
  350. <span class="subject_identifier"><a href="#MSG_SYN">MSG_SYN</a></span>
  351. </td>
  352. <td class="subject_td_na">
  353. &lt;constant&gt;
  354. </td>
  355. </tr>
  356. <tr>
  357. <td class="subject_td" nowrap>
  358. <span class="subject_identifier"><a href="#MSG_CONFIRM">MSG_CONFIRM</a></span>
  359. </td>
  360. <td class="subject_td_na">
  361. &lt;constant&gt;
  362. </td>
  363. </tr>
  364. <tr>
  365. <td class="subject_td" nowrap>
  366. <span class="subject_identifier"><a href="#MSG_RST">MSG_RST</a></span>
  367. </td>
  368. <td class="subject_td_na">
  369. &lt;constant&gt;
  370. </td>
  371. </tr>
  372. <tr>
  373. <td class="subject_td" nowrap>
  374. <span class="subject_identifier"><a href="#MSG_ERRQUEUE">MSG_ERRQUEUE</a></span>
  375. </td>
  376. <td class="subject_td_na">
  377. &lt;constant&gt;
  378. </td>
  379. </tr>
  380. <tr>
  381. <td class="subject_td" nowrap>
  382. <span class="subject_identifier"><a href="#MSG_NOSIGNAL">MSG_NOSIGNAL</a></span>
  383. </td>
  384. <td class="subject_td_na">
  385. &lt;constant&gt;
  386. </td>
  387. </tr>
  388. <tr>
  389. <td class="subject_td" nowrap>
  390. <span class="subject_identifier"><a href="#MSG_MORE">MSG_MORE</a></span>
  391. </td>
  392. <td class="subject_td_na">
  393. &lt;constant&gt;
  394. </td>
  395. </tr>
  396. <tr>
  397. <td class="subject_td" nowrap>
  398. <span class="subject_identifier"><a href="#MSG_EOF">MSG_EOF</a></span>
  399. </td>
  400. <td class="subject_td_na">
  401. &lt;constant&gt;
  402. </td>
  403. </tr>
  404. </table>
  405. <ul type="square" class="library_link_list">
  406. <li><a href="#exports">List of identifiers exported from (ypsilon socket) library</a></li>
  407. </ul>
  408. </div>
  409. <span id="make-client-socket"></span>
  410. <div class="jump_menu">
  411. [<a href="javascript:history.back()">Back</a>]
  412. [<a href="libref.ypsilon.socket.html">Top</a>]
  413. </div>
  414. <div class="api_head">Procedure: make-client-socket</div>
  415. <div class="api_body">
  416. <table class="abstract_box" border="0">
  417. <tr>
  418. <td>
  419. <div><a href="libref.ypsilon.socket.html#make-client-socket">make-client-socket</a> returns a client socket connected to an Internet address.</div>
  420. </td>
  421. </tr>
  422. </table>
  423. <table class="synopsis_box" border="0">
  424. <caption class="synopsis_box_caption">syntax:</caption>
  425. <tr>
  426. <td>
  427. <div>(make-client-socket <span class="synopsis_argument">node service</span>)</div>
  428. <div>(make-client-socket <span class="synopsis_argument">node service ai-family</span>)</div>
  429. <div>(make-client-socket <span class="synopsis_argument">node service ai-family ai-socktype</span>)</div>
  430. <div>(make-client-socket <span class="synopsis_argument">node service ai-family ai-socktype ai-flags</span>)</div>
  431. <div>(make-client-socket <span class="synopsis_argument">node service ai-family ai-socktype ai-flags ai-protocol</span>)</div>
  432. <div><span class="synopsis_retval"> =&gt; &lt;client-socket&gt;</span></div>
  433. </td>
  434. </tr>
  435. </table>
  436. <table class="param_box" border="0">
  437. <caption class="param_box_caption">arguments:</caption>
  438. <tr>
  439. <td class="param_argument">
  440. <div>node:</div>
  441. <div>service:</div>
  442. <div>ai-family:</div>
  443. <div>ai-socktype:</div>
  444. <div>ai-flags:</div>
  445. <div>ai-protocol:</div>
  446. </td>
  447. <td class="param_type">
  448. <div>&lt;string&gt;</div>
  449. <div>&lt;string&gt;</div>
  450. <div>&lt;int&gt;</div>
  451. <div>&lt;int&gt;</div>
  452. <div>&lt;int&gt;</div>
  453. <div>&lt;int&gt;</div>
  454. </td>
  455. <td class="param_detail">
  456. <div>&nbsp;</div>
  457. <div>&nbsp;</div>
  458. <div>(default: AF_INET)</div>
  459. <div>(default: SOCK_STREAM)</div>
  460. <div>(default: AI_V4MAPPED + AI_ADDRCONFIG)</div>
  461. <div>(default: 0)</div>
  462. </td>
  463. </tr>
  464. </table>
  465. <div class="indent">
  466. <dl class="dl_arguments">
  467. <dt class="dt_arguments">node</dt>
  468. <dd class="dd_arguments">—a network address. (examples: &quot;www.w3.org&quot;, &quot;localhost&quot;, &quot;128.30.52.45&quot;)</dd>
  469. <dt class="dt_arguments">service</dt>
  470. <dd class="dd_arguments">—a network service. (examples: &quot;http&quot;, &quot;ssh&quot;, &quot;80&quot;, &quot;22&quot;)</dd>
  471. <dt class="dt_arguments">ai-family</dt>
  472. <dd class="dd_arguments">—an address family specifier. Predefined specifiers are listed below:</dd>
  473. <dd class="dd_arguments">
  474. <dl class="dl_keywords">
  475. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_INET</dt>
  476. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_INET6</dt>
  477. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_UNSPEC</dt>
  478. </dl>
  479. </dd>
  480. <dt class="dt_arguments">ai-socktype</dt>
  481. <dd class="dd_arguments">—a socket type specifier. Predefined specifiers are listed below:</dd>
  482. <dd class="dd_arguments">
  483. <dl class="dl_keywords">
  484. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_STREAM</dt>
  485. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_DGRAM</dt>
  486. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_RAW</dt>
  487. </dl>
  488. </dd>
  489. <dt class="dt_arguments">ai-flags</dt>
  490. <dd class="dd_arguments">—an additional options specifier. Predefined specifiers are listed below:</dd>
  491. <dd class="dd_arguments">
  492. <dl class="dl_keywords">
  493. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_ADDRCONFIG</dt>
  494. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_ALL</dt>
  495. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_CANONNAME</dt>
  496. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_NUMERICHOST</dt>
  497. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_NUMERICSERV</dt>
  498. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_PASSIVE</dt>
  499. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AI_V4MAPPED</dt>
  500. </dl>
  501. </dd>
  502. <dt class="dt_arguments">ai-protocol</dt>
  503. <dd class="dd_arguments">—a protocol specifier. Predefined specifiers are listed below:</dd>
  504. <dd class="dd_arguments">
  505. <dl class="dl_keywords">
  506. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_TCP</dt>
  507. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_UDP</dt>
  508. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_RAW</dt>
  509. </dl>
  510. </dd>
  511. </dl>
  512. </div>
  513. <table class="desc_box" border="0">
  514. <caption class="desc_box_caption">description:</caption>
  515. <tr>
  516. <td>
  517. <div>The Internet address is identified by <span class="desc_argument">node</span> and <span class="desc_argument">service</span>. <a href="libref.ypsilon.socket.html#make-client-socket">make-client-socket</a> uses getaddrinfo(3) to look up it. The arguments <span class="desc_argument">node</span>, <span class="desc_argument">service</span>, <span class="desc_argument">ai-family</span>, <span class="desc_argument">ai-socktype</span>, <span class="desc_argument">ai-flags</span>, and <span class="desc_argument">ai-protocol</span> will be passed to getaddrinfo(3) as a correspondent parameter. Refer to getaddrinfo(3) manual page for details</div>
  518. </td>
  519. </tr>
  520. </table>
  521. <table class="example_box" border="0">
  522. <caption class="example_box_caption">examples:</caption>
  523. <tr>
  524. <td>
  525. <div>&gt; (import (rnrs) (ypsilon socket))</div>
  526. <div>&gt; (make-client-socket &quot;www.w3.org&quot; &quot;http&quot;)</div>
  527. <div><span class="example_stdout">#&lt;client-socket tcp stream 128.30.52.38:80&gt;</span></div>
  528. </td>
  529. </tr>
  530. </table>
  531. </div>
  532. <span id="make-server-socket"></span>
  533. <div class="jump_menu">
  534. [<a href="javascript:history.back()">Back</a>]
  535. [<a href="libref.ypsilon.socket.html">Top</a>]
  536. </div>
  537. <div class="api_head">Procedure: make-server-socket</div>
  538. <div class="api_body">
  539. <table class="abstract_box" border="0">
  540. <tr>
  541. <td>
  542. <div><a href="libref.ypsilon.socket.html#make-server-socket">make-server-socket</a> returns a server socket waiting for connections.</div>
  543. </td>
  544. </tr>
  545. </table>
  546. <table class="synopsis_box" border="0">
  547. <caption class="synopsis_box_caption">syntax:</caption>
  548. <tr>
  549. <td>
  550. <div>
  551. (make-server-socket <span class="synopsis_argument">service ai-family ai-socktype ai-protocol</span>)
  552. <span class="synopsis_retval"> =&gt; &lt;server-socket&gt;</span>
  553. </div>
  554. </td>
  555. </tr>
  556. </table>
  557. <table class="param_box" border="0">
  558. <caption class="param_box_caption">arguments:</caption>
  559. <tr>
  560. <td class="param_argument">
  561. <div>service:</div>
  562. <div>ai-family:</div>
  563. <div>ai-socktype:</div>
  564. <div>ai-protocol:</div>
  565. </td>
  566. <td class="param_type">
  567. <div>&lt;string&gt;</div>
  568. <div>&lt;int&gt;</div>
  569. <div>&lt;int&gt;</div>
  570. <div>&lt;int&gt;</div>
  571. </td>
  572. <td class="param_detail">
  573. <div>&nbsp;</div>
  574. <div>(default: AF_INET)</div>
  575. <div>(default: SOCK_STREAM)</div>
  576. <div>(default: 0)</div>
  577. </td>
  578. </tr>
  579. </table>
  580. <div class="indent">
  581. <dl class="dl_arguments">
  582. <dt class="dt_arguments">service</dt>
  583. <dd class="dd_arguments">—a network service. (examples: &quot;http&quot;, &quot;telnet&quot;, &quot;80&quot;, &quot;23&quot;)</dd>
  584. <dt class="dt_arguments">ai-family</dt>
  585. <dd class="dd_arguments">—an address family specifier. Predefined specifiers are listed below:</dd>
  586. <dd class="dd_arguments">
  587. <dl class="dl_keywords">
  588. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_INET</dt>
  589. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_INET6</dt>
  590. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>AF_UNSPEC</dt>
  591. </dl>
  592. </dd>
  593. <dt class="dt_arguments">ai-socktype</dt>
  594. <dd class="dd_arguments">—a socket type specifier. Predefined specifiers are listed below:</dd>
  595. <dd class="dd_arguments">
  596. <dl class="dl_keywords">
  597. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_STREAM</dt>
  598. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_DGRAM</dt>
  599. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>SOCK_RAW</dt>
  600. </dl>
  601. </dd>
  602. <dt class="dt_arguments">ai-protocol</dt>
  603. <dd class="dd_arguments">—a protocol specifier. Predefined specifiers are listed below:</dd>
  604. <dd class="dd_arguments">
  605. <dl class="dl_keywords">
  606. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_TCP</dt>
  607. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_UDP</dt>
  608. <dt class="dt_keywords"><span class=dt_keywords_prefix>&bull; </span>IPPROTO_RAW</dt>
  609. </dl>
  610. </dd>
  611. </dl>
  612. <table class="desc_box" border="0">
  613. <caption class="desc_box_caption">description:</caption>
  614. <tr>
  615. <td>
  616. <div>The arguments <span class="desc_argument">service</span>, <span class="desc_argument">ai-family</span>, <span class="desc_argument">ai-socktype</span>, and <span class="desc_argument">ai-protocol</span> will be passed to getaddrinfo(3) as a correspondent parameter to setup server socket. Refer to getaddrinfo(3) manual page for details</div>
  617. </td>
  618. </tr>
  619. </table>
  620. <table class="example_box" border="0">
  621. <caption class="example_box_caption">examples:</caption>
  622. <tr>
  623. <td>
  624. <div>&gt; (import (rnrs) (ypsilon socket))</div>
  625. <div>&gt; (make-server-socket &quot;8080&quot;)</div>
  626. <div><span class="example_stdout">#&lt;server-socket tcp stream 0.0.0.0:8080&gt;</span></div>
  627. </td>
  628. </tr>
  629. </table>
  630. </div>
  631. </div>
  632. <span id="socket?"></span>
  633. <div class="jump_menu">
  634. [<a href="javascript:history.back()">Back</a>]
  635. [<a href="libref.ypsilon.socket.html">Top</a>]
  636. </div>
  637. <div class="api_head">Procedure: socket?</div>
  638. <div class="api_body">
  639. <table class="abstract_box" border="0">
  640. <tr>
  641. <td>
  642. <div><a href="libref.ypsilon.socket.html#socket?">socket?</a> returns #t if its argument is a socket, and otherwise returns #f.</div>
  643. </td>
  644. </tr>
  645. </table>
  646. <table class="synopsis_box" border="0">
  647. <caption class="synopsis_box_caption">syntax:</caption>
  648. <tr>
  649. <td>
  650. <div>
  651. (socket? <span class="synopsis_argument">x</span>)
  652. <span class="synopsis_retval"> =&gt; &lt;boolean&gt;</span>
  653. </div>
  654. </td>
  655. </tr>
  656. </table>
  657. <table class="param_box" border="0">
  658. <caption class="param_box_caption">arguments:</caption>
  659. <tr>
  660. <td class="param_argument">
  661. <div>x:</div>
  662. </td>
  663. <td class="param_type">
  664. <div>&lt;object&gt;</div>
  665. </td>
  666. </tr>
  667. </table>
  668. </div>
  669. <span id="socket-port"></span>
  670. <div class="jump_menu">
  671. [<a href="javascript:history.back()">Back</a>]
  672. [<a href="libref.ypsilon.socket.html">Top</a>]
  673. </div>
  674. <div class="api_head">Procedure: socket-port</div>
  675. <div class="api_body">
  676. <table class="abstract_box" border="0">
  677. <tr>
  678. <td>
  679. <div><a href="libref.ypsilon.socket.html#socket-port">socket-port</a> returns a fresh binary input/output port associated with a socket.</div>
  680. </td>
  681. </tr>
  682. </table>
  683. <table class="synopsis_box" border="0">
  684. <caption class="synopsis_box_caption">syntax:</caption>
  685. <tr>
  686. <td>
  687. <div>
  688. (socket-port <span class="synopsis_argument">socket</span>)
  689. <span class="synopsis_retval"> =&gt; &lt;port&gt;</span>
  690. </div>
  691. </td>
  692. </tr>
  693. </table>
  694. <table class="param_box" border="0">
  695. <caption class="param_box_caption">arguments:</caption>
  696. <tr>
  697. <td class="param_argument">
  698. <div>socket:</div>
  699. </td>
  700. <td class="param_type">
  701. <div>&lt;socket&gt;</div>
  702. </td>
  703. </tr>
  704. </table>
  705. <table class="desc_box" border="0">
  706. <caption class="desc_box_caption">description:</caption>
  707. <tr>
  708. <td>
  709. <div>A port returned by <a href="libref.ypsilon.socket.html#socket-port">socket-port</a> can be used as an ordinary port.</div>
  710. </td>
  711. </tr>
  712. </table>
  713. </div>
  714. <span id="call-with-socket"></span>
  715. <div class="jump_menu">
  716. [<a href="javascript:history.back()">Back</a>]
  717. [<a href="libref.ypsilon.socket.html">Top</a>]
  718. </div>
  719. <div class="api_head">Procedure: call-with-socket</div>
  720. <div class="api_body">
  721. <table class="abstract_box" border="0">
  722. <tr>
  723. <td>
  724. <div><a href="libref.ypsilon.socket.html#call-with-socket">call-with-socket</a> calls a procedure with a socket as an argument. This procedure has an analogy to call-with-port of (rnrs io ports).</div>
  725. </td>
  726. </tr>
  727. </table>
  728. <table class="synopsis_box" border="0">
  729. <caption class="synopsis_box_caption">syntax:</caption>
  730. <tr>
  731. <td>
  732. <div>
  733. (call-with-socket <span class="synopsis_argument">socket proc</span>)
  734. <span class="synopsis_retval"> =&gt; &lt;object&gt;</span>
  735. </div>
  736. </td>
  737. </tr>
  738. </table>
  739. <table class="param_box" border="0">
  740. <caption class="param_box_caption">arguments:</caption>
  741. <tr>
  742. <td class="param_argument">
  743. <div>socket:</div>
  744. <div>proc:</div>
  745. </td>
  746. <td class="param_type">
  747. <div>&lt;socket&gt;</div>
  748. <div>&lt;procedure&gt;</div>
  749. </td>
  750. </tr>
  751. </table>
  752. <table class="desc_box" border="0">
  753. <caption class="desc_box_caption">description:</caption>
  754. <tr>
  755. <td>
  756. <div>If <span class="desc_argument">proc</span> returns, <span class="desc_argument">socket</span> is closed implicitly, and <a href="libref.ypsilon.socket.html#call-with-socket">call-with-socket</a> returns a value returned by <span class="desc_argument">proc</span>.</div>
  757. </td>
  758. </tr>
  759. </table>
  760. </div>
  761. <span id="shutdown-output-port"></span>
  762. <div class="jump_menu">
  763. [<a href="javascript:history.back()">Back</a>]
  764. [<a href="libref.ypsilon.socket.html">Top</a>]
  765. </div>
  766. <div class="api_head">Procedure: shutdown-output-port</div>
  767. <div class="api_body">
  768. <table class="abstract_box" border="0">
  769. <tr>
  770. <td>
  771. <div><a href="libref.ypsilon.socket.html#shutdown-output-port">shutdown-output-port</a> shutdowns output connection of a socket that associated with a port.</div>
  772. </td>
  773. </tr>
  774. </table>
  775. <table class="synopsis_box" border="0">
  776. <caption class="synopsis_box_caption">syntax:</caption>
  777. <tr>
  778. <td>
  779. <div>
  780. (shutdown-output-port <span class="synopsis_argument">port</span>)
  781. <span class="synopsis_unspecified"> =&gt; unspecified</span>
  782. </div>
  783. </td>
  784. </tr>
  785. </table>
  786. <table class="param_box" border="0">
  787. <caption class="param_box_caption">arguments:</caption>
  788. <tr>
  789. <td class="param_argument">
  790. <div>port:</div>
  791. </td>
  792. <td class="param_type">
  793. <div>&lt;port&gt;</div>
  794. </td>
  795. </tr>
  796. </table>
  797. <table class="desc_box" border="0">
  798. <tr>
  799. <td>
  800. <div>The <span class="desc_argument">port</span> must be associated with a socket.</div>
  801. </td>
  802. </tr>
  803. </table>
  804. <table class="example_box" border="0">
  805. <caption class="example_box_caption">examples:</caption>
  806. <tr>
  807. <td>
  808. <div>&gt; (import (rnrs) (ypsilon socket))</div>
  809. <div>&gt; (call-with-socket</div>
  810. <div>&nbsp; &nbsp; (make-client-socket &quot;www.w3.org&quot; &quot;http&quot;)</div>
  811. <div>&nbsp; &nbsp; (lambda (socket)</div>
  812. <div>&nbsp; &nbsp; &nbsp; (call-with-port</div>
  813. <div>&nbsp; &nbsp; &nbsp; &nbsp; (transcoded-port (socket-port socket)</div>
  814. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-transcoder (utf-8-codec)</div>
  815. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (eol-style none)))</div>
  816. <div>&nbsp; &nbsp; &nbsp; &nbsp; (lambda (port)</div>
  817. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (put-string port &quot;GET / HTTP/1.1\r\n&quot;)</div>
  818. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (put-string port &quot;HOST: www.w3.org\r\n&quot;)</div>
  819. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (put-string port &quot;\r\n&quot;)</div>
  820. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (shutdown-output-port port)</div>
  821. <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (display (get-string-all port))))))</div>
  822. <div><br /></div>
  823. <div><span class="example_stdout">HTTP/1.1 200 OK</span></div>
  824. <div><span class="example_stdout">Date: Thu, 29 Jan 2009 11:18:38 GMT</span></div>
  825. <div><span class="example_stdout">Server: Apache/2</span></div>
  826. <div><span class="example_stdout">Content-Location: Home.html</span></div>
  827. <div><span class="example_stdout">Vary: negotiate,accept</span></div>
  828. <div><span class="example_stdout">&nbsp; &nbsp; &nbsp; &nbsp; :</span></div>
  829. <div><span class="example_stdout">&nbsp; &nbsp; &nbsp; &nbsp; :</span></div>
  830. </td>
  831. </tr>
  832. </table>
  833. </div>
  834. <span id="socket-accept"></span>
  835. <div class="jump_menu">
  836. [<a href="javascript:history.back()">Back</a>]
  837. [<a href="libref.ypsilon.socket.html">Top</a>]
  838. </div>
  839. <div class="api_head">Procedure: socket-accept</div>
  840. <div class="api_body">
  841. <table class="abstract_box" border="0">
  842. <tr>
  843. <td>
  844. <div><a href="libref.ypsilon.socket.html#socket-accept">socket-accept</a> wait for an incoming connection request, and returns a fresh connected client socket.</div>
  845. </td>
  846. </tr>
  847. </table>
  848. <table class="synopsis_box" border="0">
  849. <caption class="synopsis_box_caption">syntax:</caption>
  850. <tr>
  851. <td>
  852. <div>
  853. (socket-accept <span class="synopsis_argument">socket</span>)
  854. <span class="synopsis_retval"> =&gt; &lt;client-socket&gt;</span>
  855. </div>
  856. </td>
  857. </tr>
  858. </table>
  859. <table class="param_box" border="0">
  860. <caption class="param_box_caption">arguments:</caption>
  861. <tr>
  862. <td class="param_argument">
  863. <div>socket:</div>
  864. </td>
  865. <td class="param_type">
  866. <div>&lt;server-socket&gt;</div>
  867. </td>
  868. </tr>
  869. </table>
  870. </div>
  871. <span id="socket-send"></span>
  872. <div class="jump_menu">
  873. [<a href="javascript:history.back()">Back</a>]
  874. [<a href="libref.ypsilon.socket.html">Top</a>]
  875. </div>
  876. <div class="api_head">Procedure: socket-send</div>
  877. <div class="api_body">
  878. <table class="abstract_box" border="0">
  879. <tr>
  880. <td>
  881. <div><a href="libref.ypsilon.socket.html#socket-send">socket-send</a> sends a binary data block to a socket.</div>
  882. </td>
  883. </tr>
  884. </table>
  885. <table class="synopsis_box" border="0">
  886. <caption class="synopsis_box_caption">syntax:</caption>
  887. <tr>
  888. <td>
  889. <div>
  890. (socket-send <span class="synopsis_argument">socket buffer flags</span>)
  891. <span class="synopsis_unspecified"> =&gt; unspecified</span>
  892. </div>
  893. </td>
  894. </tr>
  895. </table>
  896. <table class="param_box" border="0">
  897. <caption class="param_box_caption">arguments:</caption>
  898. <tr>
  899. <td class="param_argument">
  900. <div>socket:</div>
  901. <div>buffer:</div>
  902. <div>flags:</div>
  903. </td>
  904. <td class="param_type">
  905. <div>&lt;socket&gt;</div>
  906. <div>&lt;bytevector&gt;</div>
  907. <div>&lt;int&gt;</div>
  908. </td>
  909. </tr>
  910. </table>
  911. <table class="desc_box" border="0">
  912. <caption class="desc_box_caption">description:</caption>
  913. <tr>
  914. <td>
  915. <div><a href="libref.ypsilon.socket.html#socket-send">socket-send</a> uses send(2) to send data. The arguments <span class="desc_argument">flags</span> will be passed to send(2) as a correspondent parameter. Refer to send(2) manual page for details.</div>
  916. </td>
  917. </tr>
  918. </table>
  919. </div>
  920. <span id="socket-recv"></span>
  921. <div class="jump_menu">
  922. [<a href="javascript:history.back()">Back</a>]
  923. [<a href="libref.ypsilon.socket.html">Top</a>]
  924. </div>
  925. <div class="api_head">Procedure: socket-recv</div>
  926. <div class="api_body">
  927. <table class="abstract_box" border="0">
  928. <tr>
  929. <td>
  930. <div><a href="libref.ypsilon.socket.html#socket-recv">socket-recv</a> receives a binary data block from a socket.</div>
  931. </td>
  932. </tr>
  933. </table>
  934. <table class="synopsis_box" border="0">
  935. <caption class="synopsis_box_caption">syntax:</caption>
  936. <tr>
  937. <td>
  938. <div>
  939. (socket-recv <span class="synopsis_argument">socket flags</span>)
  940. <span class="synopsis_retval"> =&gt; &lt;bytevector&gt;</span>
  941. </div>
  942. </td>
  943. </tr>
  944. </table>
  945. <table class="param_box" border="0">
  946. <caption class="param_box_caption">arguments:</caption>
  947. <tr>
  948. <td class="param_argument">
  949. <div>socket:</div>
  950. <div>flags:</div>
  951. </td>
  952. <td class="param_type">
  953. <div>&lt;socket&gt;</div>
  954. <div>&lt;int&gt;</div>
  955. </td>
  956. </tr>
  957. </table>
  958. <table class="desc_box" border="0">
  959. <caption class="desc_box_caption">description:</caption>
  960. <tr>
  961. <td>
  962. <div><a href="libref.ypsilon.socket.html#socket-recv">socket-recv</a> uses recv(2) to receive data. The arguments <span class="desc_argument">flags</span> will be passed to recv(2) as a correspondent parameter. Refer to recv(2) manual page for details.</div>
  963. </td>
  964. </tr>
  965. </table>
  966. </div>
  967. <span id="socket-shutdown"></span>
  968. <div class="jump_menu">
  969. [<a href="javascript:history.back()">Back</a>]
  970. [<a href="libref.ypsilon.socket.html">Top</a>]
  971. </div>
  972. <div class="api_head">Procedure: socket-shutdown</div>
  973. <div class="api_body">
  974. <table class="abstract_box" border="0">
  975. <tr>
  976. <td>
  977. <div><a href="libref.ypsilon.socket.html#socket-shutdown">socket-shutdown</a> shutdowns a socket.</div>
  978. </td>
  979. </tr>
  980. </table>
  981. <table class="synopsis_box" border="0">
  982. <caption class="synopsis_box_caption">syntax:</caption>
  983. <tr>
  984. <td>
  985. <div>
  986. (socket-shutdown <span class="synopsis_argument">socket how</span>)
  987. <span class="synopsis_unspecified"> =&gt; unspecified</span>
  988. </div>
  989. </td>
  990. </tr>
  991. </table>
  992. <table class="param_box" border="0">
  993. <caption class="param_box_caption">arguments:</caption>
  994. <tr>
  995. <td class="param_argument">
  996. <div>socket:</div>
  997. <div>how:</div>
  998. </td>
  999. <td class="param_type">
  1000. <div>&lt;socket&gt;</div>
  1001. <div>SHUT_RD, SHUT_WR, or SHUT_RDWR</div>
  1002. </td>
  1003. </tr>
  1004. </table>
  1005. <table class="desc_box" border="0">
  1006. <caption class="desc_box_caption">description:</caption>
  1007. <tr>
  1008. <td>
  1009. <div>If <span class="desc_argument">how</span> is <a href="libref.ypsilon.socket.html#SHUT_RD">SHUT_RD</a>, a input is shutdowned.</div>
  1010. <div>If <span class="desc_argument">how</span> is <a href="libref.ypsilon.socket.html#SHUT_WR">SHUT_WR</a>, an output is shutdowned.</div>
  1011. <div>If <span class="desc_argument">how</span> is <a href="libref.ypsilon.socket.html#SHUT_RDWR">SHUT_RDWR</a>, both input and output are shutdowned.</div>
  1012. </td>
  1013. </tr>
  1014. </table>
  1015. </div>
  1016. <span id="socket-close"></span>
  1017. <div class="jump_menu">
  1018. [<a href="javascript:history.back()">Back</a>]
  1019. [<a href="libref.ypsilon.socket.html">Top</a>]
  1020. </div>
  1021. <div class="api_head">Procedure: socket-close</div>
  1022. <div class="api_body">
  1023. <table class="abstract_box" border="0">
  1024. <tr>
  1025. <td>
  1026. <div><a href="libref.ypsilon.socket.html#socket-close">socket-close</a> closes a socket.</div>
  1027. </td>
  1028. </tr>
  1029. </table>
  1030. <table class="synopsis_box" border="0">
  1031. <caption class="synopsis_box_caption">syntax:</caption>
  1032. <tr>
  1033. <td>
  1034. <div>
  1035. (socket-close <span class="synopsis_argument">socket</span>)
  1036. <span class="synopsis_unspecified"> =&gt; unspecified</span>
  1037. </div>
  1038. </td>
  1039. </tr>
  1040. </table>
  1041. <table class="param_box" border="0">
  1042. <caption class="param_box_caption">arguments:</caption>
  1043. <tr>
  1044. <td class="param_argument">
  1045. <div>socket:</div>
  1046. </td>
  1047. <td class="param_type">
  1048. <div>&lt;socket&gt;</div>
  1049. </td>
  1050. </tr>
  1051. </table>
  1052. </div>
  1053. <span id="AF_UNSPEC"></span>
  1054. <span id="AF_INET"></span>
  1055. <span id="AF_INET6"></span>
  1056. <div class="jump_menu">
  1057. [<a href="javascript:history.back()">Back</a>]
  1058. [<a href="libref.ypsilon.socket.html">Top</a>]
  1059. </div>
  1060. <div class="api_head">
  1061. <table border="0" cellpadding="0" cellspacing="0">
  1062. <tr>
  1063. <td valign="top">
  1064. Constants:&nbsp;
  1065. </td>
  1066. <td class="const_word" valign="top">
  1067. AF_UNSPEC<span class="const_comma">,</span> AF_INET<span class="const_comma">,</span> AF_INET6
  1068. </td>
  1069. </tr>
  1070. </table>
  1071. </div>
  1072. <div class="api_body">
  1073. <table class="abstract_box" border="0">
  1074. <tr>
  1075. <td>
  1076. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1077. </td>
  1078. </tr>
  1079. </table>
  1080. </div>
  1081. <span id="SOCK_STREAM"></span>
  1082. <span id="SOCK_DGRAM"></span>
  1083. <span id="SOCK_RAW"></span>
  1084. <div class="jump_menu">
  1085. [<a href="javascript:history.back()">Back</a>]
  1086. [<a href="libref.ypsilon.socket.html">Top</a>]
  1087. </div>
  1088. <div class="api_head">
  1089. <table border="0" cellpadding="0" cellspacing="0">
  1090. <tr>
  1091. <td valign="top">
  1092. Constants:&nbsp;
  1093. </td>
  1094. <td class="const_word" valign="top">
  1095. SOCK_STREAM<span class="const_comma">,</span> SOCK_DGRAM<span class="const_comma">,</span> SOCK_RAW
  1096. </td>
  1097. </tr>
  1098. </table>
  1099. </div>
  1100. <div class="api_body">
  1101. <table class="abstract_box" border="0">
  1102. <tr>
  1103. <td>
  1104. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1105. </td>
  1106. </tr>
  1107. </table>
  1108. </div>
  1109. <span id="AI_ADDRCONFIG"></span>
  1110. <span id="AI_ALL"></span>
  1111. <span id="AI_CANONNAME"></span>
  1112. <span id="AI_NUMERICHOST"></span>
  1113. <span id="AI_NUMERICSERV"></span>
  1114. <span id="AI_PASSIVE"></span>
  1115. <span id="AI_V4MAPPED"></span>
  1116. <div class="jump_menu">
  1117. [<a href="javascript:history.back()">Back</a>]
  1118. [<a href="libref.ypsilon.socket.html">Top</a>]
  1119. </div>
  1120. <div class="api_head">
  1121. <table border="0" cellpadding="0" cellspacing="0">
  1122. <tr>
  1123. <td valign="top">
  1124. Constants:&nbsp;
  1125. </td>
  1126. <td class="const_word" valign="top">
  1127. AI_ADDRCONFIG<span class="const_comma">,</span> AI_ALL<span class="const_comma">,</span> AI_CANONNAME<span class="const_comma">,</span> AI_NUMERICHOST<span class="const_comma">,</span> AI_NUMERICSERV<span class="const_comma">,</span> AI_PASSIVE<span class="const_comma">,</span> AI_V4MAPPED
  1128. </td>
  1129. </tr>
  1130. </table>
  1131. </div>
  1132. <div class="api_body">
  1133. <table class="abstract_box" border="0">
  1134. <tr>
  1135. <td>
  1136. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1137. </td>
  1138. </tr>
  1139. </table>
  1140. </div>
  1141. <span id="IPPROTO_TCP"></span>
  1142. <span id="IPPROTO_UDP"></span>
  1143. <span id="IPPROTO_RAW"></span>
  1144. <div class="jump_menu">
  1145. [<a href="javascript:history.back()">Back</a>]
  1146. [<a href="libref.ypsilon.socket.html">Top</a>]
  1147. </div>
  1148. <div class="api_head">
  1149. <table border="0" cellpadding="0" cellspacing="0">
  1150. <tr>
  1151. <td valign="top">
  1152. Constants:&nbsp;
  1153. </td>
  1154. <td class="const_word" valign="top">
  1155. IPPROTO_TCP<span class="const_comma">,</span> IPPROTO_UDP<span class="const_comma">,</span> IPPROTO_RAW
  1156. </td>
  1157. </tr>
  1158. </table>
  1159. </div>
  1160. <div class="api_body">
  1161. <table class="abstract_box" border="0">
  1162. <tr>
  1163. <td>
  1164. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1165. </td>
  1166. </tr>
  1167. </table>
  1168. </div>
  1169. <span id="SHUT_RD"></span>
  1170. <span id="SHUT_WR"></span>
  1171. <span id="SHUT_RDWR"></span>
  1172. <div class="jump_menu">
  1173. [<a href="javascript:history.back()">Back</a>]
  1174. [<a href="libref.ypsilon.socket.html">Top</a>]
  1175. </div>
  1176. <div class="api_head">
  1177. <table border="0" cellpadding="0" cellspacing="0">
  1178. <tr>
  1179. <td valign="top">
  1180. Constants:&nbsp;
  1181. </td>
  1182. <td class="const_word" valign="top">
  1183. SHUT_RD<span class="const_comma">,</span> SHUT_WR<span class="const_comma">,</span> SHUT_RDWR
  1184. </td>
  1185. </tr>
  1186. </table>
  1187. </div>
  1188. <div class="api_body">
  1189. <table class="abstract_box" border="0">
  1190. <tr>
  1191. <td>
  1192. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1193. </td>
  1194. </tr>
  1195. </table>
  1196. </div>
  1197. <span id="MSG_OOB"></span>
  1198. <span id="MSG_PEEK"></span>
  1199. <span id="MSG_DONTROUTE"></span>
  1200. <span id="MSG_CTRUNC"></span>
  1201. <span id="MSG_PROBE"></span>
  1202. <span id="MSG_TRUNC"></span>
  1203. <span id="MSG_DONTWAIT"></span>
  1204. <span id="MSG_EOR"></span>
  1205. <span id="MSG_WAITALL"></span>
  1206. <span id="MSG_FIN"></span>
  1207. <span id="MSG_SYN"></span>
  1208. <span id="MSG_CONFIRM"></span>
  1209. <span id="MSG_RST"></span>
  1210. <span id="MSG_ERRQUEUE"></span>
  1211. <span id="MSG_NOSIGNAL"></span>
  1212. <span id="MSG_MORE"></span>
  1213. <span id="MSG_EOF"></span>
  1214. <div class="jump_menu">
  1215. [<a href="javascript:history.back()">Back</a>]
  1216. [<a href="libref.ypsilon.socket.html">Top</a>]
  1217. </div>
  1218. <div class="api_head">
  1219. <table border="0" cellpadding="0" cellspacing="0">
  1220. <tr>
  1221. <td valign="top">
  1222. Constants:&nbsp;
  1223. </td>
  1224. <td class="const_word" valign="top">
  1225. MSG_OOB<span class="const_comma">,</span> MSG_PEEK<span class="const_comma">,</span> MSG_DONTROUTE<span class="const_comma">,</span> MSG_CTRUNC<span class="const_comma">,</span> MSG_PROBE<span class="const_comma">,</span> MSG_TRUNC<span class="const_comma">,</span> MSG_DONTWAIT<span class="const_comma">,</span> MSG_EOR<span class="const_comma">,</span> MSG_WAITALL<span class="const_comma">,</span> MSG_FIN<span class="const_comma">,</span> MSG_SYN<span class="const_comma">,</span> MSG_CONFIRM<span class="const_comma">,</span> MSG_RST<span class="const_comma">,</span> MSG_ERRQUEUE<span class="const_comma">,</span> MSG_NOSIGNAL<span class="const_comma">,</span> MSG_MORE<span class="const_comma">,</span> MSG_EOF
  1226. </td>
  1227. </tr>
  1228. </table>
  1229. </div>
  1230. <div class="api_body">
  1231. <table class="abstract_box" border="0">
  1232. <tr>
  1233. <td>
  1234. <div>Each constant is defined to an exact integer value of a correspondent C header file definition.</div>
  1235. </td>
  1236. </tr>
  1237. </table>
  1238. </div>
  1239. <div id="exports"></div>
  1240. <div class="jump_menu">
  1241. [<a href="javascript:history.back()">Back</a>]
  1242. [<a href="libref.ypsilon.socket.html">Top</a>]
  1243. </div>
  1244. <div class="library_head">Identifiers exported from (ypsilon socket)</a> library</div>
  1245. <div class="library_body">
  1246. <table class="exports_parent_box" border="0" width="800">
  1247. <tr>
  1248. <td width="50%">
  1249. <table class="exports_box" border="0" width="100%">
  1250. <caption class="exports_box_caption">Contexual list of all exports:</div>
  1251. <tr>
  1252. <td>
  1253. <span class="exports_identifier"><a href="#make-client-socket">make-client-socket</a></span>
  1254. </td>
  1255. <tr>
  1256. <td>
  1257. <span class="exports_identifier"><a href="#make-server-socket">make-server-socket</a></span>
  1258. </td>
  1259. <tr>
  1260. <td>
  1261. <span class="exports_identifier"><a href="#socket?">socket?</a></span>
  1262. </td>
  1263. <tr>
  1264. <td>
  1265. <span class="exports_identifier"><a href="#socket-port">socket-port</a></span>
  1266. </td>
  1267. <tr>
  1268. <td>
  1269. <span class="exports_identifier"><a href="#call-with-socket">call-with-socket</a></span>
  1270. </td>
  1271. <tr>
  1272. <td>
  1273. <span class="exports_identifier"><a href="#shutdown-output-port">shutdown-output-port</a></span>
  1274. </td>
  1275. <tr>
  1276. <td>
  1277. <span class="exports_identifier"><a href="#socket-accept">socket-accept</a></span>
  1278. </td>
  1279. <tr>
  1280. <td>
  1281. <span class="exports_identifier"><a href="#socket-send">socket-send</a></span>
  1282. </td>
  1283. <tr>
  1284. <td>
  1285. <span class="exports_identifier"><a href="#socket-recv">socket-recv</a></span>
  1286. </td>
  1287. <tr>
  1288. <td>
  1289. <span class="exports_identifier"><a href="#socket-shutdown">socket-shutdown</a></span>
  1290. </td>
  1291. <tr>
  1292. <td>
  1293. <span class="exports_identifier"><a href="#socket-close">socket-close</a></span>
  1294. </td>
  1295. <tr>
  1296. <td>
  1297. <span class="exports_identifier"><a href="#AF_UNSPEC">AF_UNSPEC</a></span>
  1298. </td>
  1299. <tr>
  1300. <td>
  1301. <span class="exports_identifier"><a href="#AF_INET">AF_INET</a></span>
  1302. </td>
  1303. <tr>
  1304. <td>
  1305. <span class="exports_identifier"><a href="#AF_INET6">AF_INET6</a></span>
  1306. </td>
  1307. <tr>
  1308. <td>
  1309. <span class="exports_identifier"><a href="#SOCK_STREAM">SOCK_STREAM</a></span>
  1310. </td>
  1311. <tr>
  1312. <td>
  1313. <span class="exports_identifier"><a href="#SOCK_DGRAM">SOCK_DGRAM</a></span>
  1314. </td>
  1315. <tr>
  1316. <td>
  1317. <span class="exports_identifier"><a href="#SOCK_RAW">SOCK_RAW</a></span>
  1318. </td>
  1319. <tr>
  1320. <td>
  1321. <span class="exports_identifier"><a href="#AI_ADDRCONFIG">AI_ADDRCONFIG</a></span>
  1322. </td>
  1323. <tr>
  1324. <td>
  1325. <span class="exports_identifier"><a href="#AI_ALL">AI_ALL</a></span>
  1326. </td>
  1327. <tr>
  1328. <td>
  1329. <span class="exports_identifier"><a href="#AI_CANONNAME">AI_CANONNAME</a></span>
  1330. </td>
  1331. <tr>
  1332. <td>
  1333. <span class="exports_identifier"><a href="#AI_NUMERICHOST">AI_NUMERICHOST</a></span>
  1334. </td>
  1335. <tr>
  1336. <td>
  1337. <span class="exports_identifier"><a href="#AI_NUMERICSERV">AI_NUMERICSERV</a></span>
  1338. </td>
  1339. <tr>
  1340. <td>
  1341. <span class="exports_identifier"><a href="#AI_PASSIVE">AI_PASSIVE</a></span>
  1342. </td>
  1343. <tr>
  1344. <td>
  1345. <span class="exports_identifier"><a href="#AI_V4MAPPED">AI_V4MAPPED</a></span>
  1346. </td>
  1347. <tr>
  1348. <td>
  1349. <span class="exports_identifier"><a href="#IPPROTO_TCP">IPPROTO_TCP</a></span>
  1350. </td>
  1351. <tr>
  1352. <td>
  1353. <span class="exports_identifier"><a href="#IPPROTO_UDP">IPPROTO_UDP</a></span>
  1354. </td>
  1355. <tr>
  1356. <td>
  1357. <span class="exports_identifier"><a href="#IPPROTO_RAW">IPPROTO_RAW</a></span>
  1358. </td>
  1359. <tr>
  1360. <td>
  1361. <span class="exports_identifier"><a href="#SHUT_RD">SHUT_RD</a></span>
  1362. </td>
  1363. <tr>
  1364. <td>
  1365. <span class="exports_identifier"><a href="#SHUT_WR">SHUT_WR</a></span>
  1366. </td>
  1367. <tr>
  1368. <td>
  1369. <span class="exports_identifier"><a href="#SHUT_RDWR">SHUT_RDWR</a></span>
  1370. </td>
  1371. <tr>
  1372. <td>
  1373. <span class="exports_identifier"><a href="#MSG_OOB">MSG_OOB</a></span>
  1374. </td>
  1375. <tr>
  1376. <td>
  1377. <span class="exports_identifier"><a href="#MSG_PEEK">MSG_PEEK</a></span>
  1378. </td>
  1379. <tr>
  1380. <td>
  1381. <span class="exports_identifier"><a href="#MSG_DONTROUTE">MSG_DONTROUTE</a></span>
  1382. </td>
  1383. <tr>
  1384. <td>
  1385. <span class="exports_identifier"><a href="#MSG_CTRUNC">MSG_CTRUNC</a></span>
  1386. </td>
  1387. <tr>
  1388. <td>
  1389. <span class="exports_identifier"><a href="#MSG_PROBE">MSG_PROBE</a></span>
  1390. </td>
  1391. <tr>
  1392. <td>
  1393. <span class="exports_identifier"><a href="#MSG_TRUNC">MSG_TRUNC</a></span>
  1394. </td>
  1395. <tr>
  1396. <td>
  1397. <span class="exports_identifier"><a href="#MSG_DONTWAIT">MSG_DONTWAIT</a></span>
  1398. </td>
  1399. <tr>
  1400. <td>
  1401. <span class="exports_identifier"><a href="#MSG_EOR">MSG_EOR</a></span>
  1402. </td>
  1403. <tr>
  1404. <td>
  1405. <span class="exports_identifier"><a href="#MSG_WAITALL">MSG_WAITALL</a></span>
  1406. </td>
  1407. <tr>
  1408. <td>
  1409. <span class="exports_identifier"><a href="#MSG_FIN">MSG_FIN</a></span>
  1410. </td>
  1411. <tr>
  1412. <td>
  1413. <span class="exports_identifier"><a href="#MSG_SYN">MSG_SYN</a></span>
  1414. </td>
  1415. <tr>
  1416. <td>
  1417. <span class="exports_identifier"><a href="#MSG_CONFIRM">MSG_CONFIRM</a></span>
  1418. </td>
  1419. <tr>
  1420. <td>
  1421. <span class="exports_identifier"><a href="#MSG_RST">MSG_RST</a></span>
  1422. </td>
  1423. <tr>
  1424. <td>
  1425. <span class="exports_identifier"><a href="#MSG_ERRQUEUE">MSG_ERRQUEUE</a></span>
  1426. </td>
  1427. <tr>
  1428. <td>
  1429. <span class="exports_identifier"><a href="#MSG_NOSIGNAL">MSG_NOSIGNAL</a></span>
  1430. </td>
  1431. <tr>
  1432. <td>
  1433. <span class="exports_identifier"><a href="#MSG_MORE">MSG_MORE</a></span>
  1434. </td>
  1435. <tr>
  1436. <td>
  1437. <span class="exports_identifier"><a href="#MSG_EOF">MSG_EOF</a></span>
  1438. </td>
  1439. </table>
  1440. </td>
  1441. <td width="50%">
  1442. <table class="exports_index_box" border="0" width="100%">
  1443. <caption class="exports_box_caption">Alphabetical list of all exports:</div>
  1444. <tr>
  1445. <td>
  1446. <span class="exports_identifier"><a href="#AF_INET">AF_INET</a></span>
  1447. </td>
  1448. </tr>
  1449. <tr>
  1450. <td>
  1451. <span class="exports_identifier"><a href="#AF_INET6">AF_INET6</a></span>
  1452. </td>
  1453. </tr>
  1454. <tr>
  1455. <td>
  1456. <span class="exports_identifier"><a href="#AF_UNSPEC">AF_UNSPEC</a></span>
  1457. </td>
  1458. </tr>
  1459. <tr>
  1460. <td>
  1461. <span class="exports_identifier"><a href="#AI_ADDRCONFIG">AI_ADDRCONFIG</a></span>
  1462. </td>
  1463. </tr>
  1464. <tr>
  1465. <td>
  1466. <span class="exports_identifier"><a href="#AI_ALL">AI_ALL</a></span>
  1467. </td>
  1468. </tr>
  1469. <tr>
  1470. <td>
  1471. <span class="exports_identifier"><a href="#AI_CANONNAME">AI_CANONNAME</a></span>
  1472. </td>
  1473. </tr>
  1474. <tr>
  1475. <td>
  1476. <span class="exports_identifier"><a href="#AI_NUMERICHOST">AI_NUMERICHOST</a></span>
  1477. </td>
  1478. </tr>
  1479. <tr>
  1480. <td>
  1481. <span class="exports_identifier"><a href="#AI_NUMERICSERV">AI_NUMERICSERV</a></span>
  1482. </td>
  1483. </tr>
  1484. <tr>
  1485. <td>
  1486. <span class="exports_identifier"><a href="#AI_PASSIVE">AI_PASSIVE</a></span>
  1487. </td>
  1488. </tr>
  1489. <tr>
  1490. <td>
  1491. <span class="exports_identifier"><a href="#AI_V4MAPPED">AI_V4MAPPED</a></span>
  1492. </td>
  1493. </tr>
  1494. <tr>
  1495. <td>
  1496. <span class="exports_identifier"><a href="#IPPROTO_RAW">IPPROTO_RAW</a></span>
  1497. </td>
  1498. </tr>
  1499. <tr>
  1500. <td>
  1501. <span class="exports_identifier"><a href="#IPPROTO_TCP">IPPROTO_TCP</a></span>
  1502. </td>
  1503. </tr>
  1504. <tr>
  1505. <td>
  1506. <span class="exports_identifier"><a href="#IPPROTO_UDP">IPPROTO_UDP</a></span>
  1507. </td>
  1508. </tr>
  1509. <tr>
  1510. <td>
  1511. <span class="exports_identifier"><a href="#MSG_CONFIRM">MSG_CONFIRM</a></span>
  1512. </td>
  1513. </tr>
  1514. <tr>
  1515. <td>
  1516. <span class="exports_identifier"><a href="#MSG_CTRUNC">MSG_CTRUNC</a></span>
  1517. </td>
  1518. </tr>
  1519. <tr>
  1520. <td>
  1521. <span class="exports_identifier"><a href="#MSG_DONTROUTE">MSG_DONTROUTE</a></span>
  1522. </td>
  1523. </tr>
  1524. <tr>
  1525. <td>
  1526. <span class="exports_identifier"><a href="#MSG_DONTWAIT">MSG_DONTWAIT</a></span>
  1527. </td>
  1528. </tr>
  1529. <tr>
  1530. <td>
  1531. <span class="exports_identifier"><a href="#MSG_EOF">MSG_EOF</a></span>
  1532. </td>
  1533. </tr>
  1534. <tr>
  1535. <td>
  1536. <span class="exports_identifier"><a href="#MSG_EOR">MSG_EOR</a></span>
  1537. </td>
  1538. </tr>
  1539. <tr>
  1540. <td>
  1541. <span class="exports_identifier"><a href="#MSG_ERRQUEUE">MSG_ERRQUEUE</a></span>
  1542. </td>
  1543. </tr>
  1544. <tr>
  1545. <td>
  1546. <span class="exports_identifier"><a href="#MSG_FIN">MSG_FIN</a></span>
  1547. </td>
  1548. </tr>
  1549. <tr>
  1550. <td>
  1551. <span class="exports_identifier"><a href="#MSG_MORE">MSG_MORE</a></span>
  1552. </td>
  1553. </tr>
  1554. <tr>
  1555. <td>
  1556. <span class="exports_identifier"><a href="#MSG_NOSIGNAL">MSG_NOSIGNAL</a></span>
  1557. </td>
  1558. </tr>
  1559. <tr>
  1560. <td>
  1561. <span class="exports_identifier"><a href="#MSG_OOB">MSG_OOB</a></span>
  1562. </td>
  1563. </tr>
  1564. <tr>
  1565. <td>
  1566. <span class="exports_identifier"><a href="#MSG_PEEK">MSG_PEEK</a></span>
  1567. </td>
  1568. </tr>
  1569. <tr>
  1570. <td>
  1571. <span class="exports_identifier"><a href="#MSG_PROBE">MSG_PROBE</a></span>
  1572. </td>
  1573. </tr>
  1574. <tr>
  1575. <td>
  1576. <span class="exports_identifier"><a href="#MSG_RST">MSG_RST</a></span>
  1577. </td>
  1578. </tr>
  1579. <tr>
  1580. <td>
  1581. <span class="exports_identifier"><a href="#MSG_SYN">MSG_SYN</a></span>
  1582. </td>
  1583. </tr>
  1584. <tr>
  1585. <td>
  1586. <span class="exports_identifier"><a href="#MSG_TRUNC">MSG_TRUNC</a></span>
  1587. </td>
  1588. </tr>
  1589. <tr>
  1590. <td>
  1591. <s

Large files files are truncated, but you can click here to view the full file