|
|
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток :) Вот возникла проблема: Пишу программу на Си, использую сокеты, но когда начинаю анализировать поступивший пакет мне вместо реальных IP пишет какую-то муть :( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. IP которые выводятся на экран неимеют ничего общего с реальными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 08:28 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Открой для себя htonl, ну и htons для кучи :) Дело в том, что в Internet принят другой порядок байт, противоположный к хостовому Intel-а Нужно просто переставить байтики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 08:41 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Чтото мне сдается, что recv не берет Header. Сам определял обратный адрес из функции accept (при передаче с каналом) или recfrom (без канала) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 09:46 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
А можно пример или ссылку на документацию по данным функциям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 09:53 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
автор НАЗВАНИЕ htonl, htons, ntohl, ntohs - переводят данные из узлового порядкарасположения байтов в сетевой и наоборот СИНТАКСИС #include <netinet/in.h> uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); ОПИСАНИЕ Функция htonl() преобразует узловой порядок расположениябайтов положительного целого hostlong в сетевой порядок распол ожения байтов. Функция htons() преобразует узловой порядок расположения байтовположительного короткого целого hostshort в сетевой пор ядок расположения байтов. Функция ntohl() преобразует сетевой порядок расположения байтовположительного целого netlong в узловой порядок располо жения байтов. Функция ntohs() преобразует сетевой порядок расположения байтовположительного короткого целого netshort в узловой поря док расположения байтов. В архитектуре i80x86 узловой порядок расположения байтов - этотакой порядок, при котором последний значимый байт стоит в начале числа, а при сетевом порядке расположения байтов, используемом в интернет, наоборот: первый значимый байт сто ит в начале числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 09:57 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Вообщем, htonl для адреса, htons для порта. Остальные две, соответсвенно, наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 10:00 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
В общем понятно, а как сее в printf вывести? Какой формат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 10:05 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
LepajВ общем понятно, а как сее в printf вывести? Какой формат? 4 байта - 4 октета адреса ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 10:08 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) 4 байта - 4 октета адреса ;) Т.е. получается, что возвращается 24 байта? Например адрес 127.0.0.1 будет иметь вид: 01111111 00000000 00000000 00000001 или же возвращается другое значение? так как я понял ф-ция inet_ntoa() сама преобразует значение в читабельный формат, а что возвращается в ф-ции htonl? если можно, дайте пожайлуста пример вывода на экран (printf) значения возвращаемого htonl... P.S.: Извините за тупой вопрос, но я только учусь работать с сокетами и пока имею довольно туманное представления о них... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 10:45 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Lepaj Gluk (Kazan) 4 байта - 4 октета адреса ;) Т.е. получается, что возвращается 24 байта? Например адрес 127.0.0.1 будет иметь вид: 01111111 00000000 00000000 00000001 Loopback ты нарисовал правильно. Одного не пойму, 24 то откуда взялось ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:10 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Loopback ты нарисовал правильно. Одного не пойму, 24 то откуда взялось ??? 24 байта, занимает адрес 4 числа по 8 байт дает 24 байта, вот только как их в си преобразовать и вывести на экран? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:38 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Lepaj Gluk (Kazan) Loopback ты нарисовал правильно. Одного не пойму, 24 то откуда взялось ??? 24 байта, занимает адрес 4 числа по 8 байт дает 24 байта, вот только как их в си преобразовать и вывести на экран? Странно, а я всегда думал, что 4 октета по 8 бит дадут 32 бита Пойду подучу арифметику ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:40 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Lepaj Gluk (Kazan) Loopback ты нарисовал правильно. Одного не пойму, 24 то откуда взялось ??? 24 байта, занимает адрес 4 числа по 8 байт дает 24 байта, вот только как их в си преобразовать и вывести на экран? Ты же сам уже написал, что для этого есть inet_ntoa. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:40 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Lepaj, не путай строчное представление адреса, узловое и сетевое. Читай документацию, что я тебе запостил, + ниже следующую и все вопросы сами отпадут. автор НАЗВАНИЕ inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof - работа с адресами интернет СИНТАКСИС #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int inet_aton(const char *cp, struct in_addr *inp); in_addr_t inet_addr(const char *cp); in_addr_t inet_network(const char *cp); char *inet_ntoa(struct in_addr in); struct in_addr inet_makeaddr(int net, int host); in_addr_t inet_lnaof(struct in_addr in); in_addr_t inet_netof(struct in_addr in); ОПИСАНИЕ inet_aton() преобразовывает обычный вид IP-адреса cp (из номеров и точек) в двоичный код и сохраняет его в структуре, на которую указывает inp. inet_aton возвращает ненулевое значение, если адрес правильный, и возвращает ноль, если он н еверен. Функция inet_addr() преобразует обычный вид IP-адреса cp (из номеров и точек) в двоичный код в сетевом порядке располо жения байтов. Если входящий адрес неверен, то возвращается INADDR_NONE (обычно -1). Это - устаревший способ, посколь ку уже существует inet_aton, описанный выше; способ также считается устаревшим, потому что -1 фактически являетсяправи льным адресом (255.255.255.255), а inet_aton четко определяет, есть ошибкав адресе или нет. Функция inet_network() извлекает сетевой номерв хостовом порядке расположения байтовиз адреса cp, записанном в виде но меров и точек. Если входящий адрес неверен, то возвращается -1. Функция inet_ntoa() преобразует IP-адрес in, заданный в сетевом порядке расположения байтов, в стандартный строчный ви д, из номеров и точек. Строка располагается в статически размещенном буфере; последующие вызовы перепишут его данные. Ф ункция inet_makeaddr() создает IP-адрес в сетевом порядке расположения байтов, комбинируя номер сети net с локальным адресом host в сети net (оба в хостовом порядке расположения байтов). Функция inet_lnaof() возвращает часть адреса для локального хостаиз IP-адреса in. Адрес локального хоста возвращается в хостовом порядкеразмещения байтов. Функция inet_netof() возвращает сетевую часть IP-адреса in. Сетевой номер возвращается в виде байтов, порядок которых определяетсясистемой локального хоста. Структура in_addr, используемая в функциях inet_ntoa(), inet_makeaddr(), inet_lnoaf() и inet_netof(), определе н а в netinet/in.h таким образом: struct in_addr { unsigned long int s_addr; } Заметим, что для i80x86 хостовый порядок расположения байтовозначает размещение сначала наименьшего значащего байта, а сетевой порядок расположения байтов (используемый в интернет) подразумевает размещение в начале наибольшего значимог о байта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:49 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Странно, а я всегда думал, что 4 октета по 8 бит дадут 32 бита Пойду подучу арифметику блин, ну прокосячил :( пойду тоже арифметику учить :) AkhТы же сам уже написал, что для этого есть inet_ntoa. :) Ну так inet_ntoa неправильный результат возвращает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:52 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Пойду подучу арифметику тут не в арифметике дело, а в плане :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 12:18 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 12:31 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Дело в том, что в Internet принят другой порядок байт, противоположный к хостовому Intel-а Нужно просто переставить байтики Akh ОПИСАНИЕ Функция htonl() преобразует узловой порядок расположениябайтов положительного целого hostlong в сетевой порядок распол ожения байтов. Т.е. получается, что функция htonl() меняет порядок байтов на сетевой, а inet_ntoa() преобразует к читабельному строчнуму виду... Но почему компилятор ругается на такую конструкцию printf("%s",inet_ntoa(inet_ntoa(htonl(pack_adr)));? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 13:01 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас Gluk (Kazan)Пойду подучу арифметику тут не в арифметике дело, а в плане :) Posted via ActualForum NNTP Server 1.3 Плановое хозяйство это СИЛА ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 13:01 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Lepaj Но почему компилятор ругается на такую конструкцию printf("%s",inet_ntoa(inet_ntoa(htonl(pack_adr)));? Пришел к такой конструкции : pack_adr.s_addr = hdr->iph_src; pack_adr.s_addr = ntohl(pack_adr.s_addr); printf("%s",inet_ntoa(pack_adr)); но, все равно на экран выводит неправильные IP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 13:25 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
SnowMan2Чтото мне сдается, что recv не берет Header. Сам определял обратный адрес из функции accept (при передаче с каналом) или recfrom (без канала) Долго мучался с приведенно выше конструкцией, но постоянно получаю разные IP :( А как вытащить IP из accept? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 14:43 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Уважаемые Гуру, дайте хотя бы намек, или алгоритм, как распотрашить пакет :) Что бы можно было бы вытащить из полученного пакета адрес отправителя, адрес получателя и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:35 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
ты ж задачу толком не описал, какие тебе намеки ??? TCP, UDP или слушаешь сырой сокет ? из твоих слов совершенно непонятно. Какой-то обрывок кода :( Что тебе посоветовать ? Как правильно задавать вопросы ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:52 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)ты ж задачу толком не описал, какие тебе намеки ??? TCP, UDP или слушаешь сырой сокет ? из твоих слов совершенно непонятно. Какой-то обрывок кода :( Что тебе посоветовать ? Как правильно задавать вопросы ??? Пардон... Некоректно сформулировал вопрос... Задача заключается в следующем. Организуется TCP сокет на прослушивание, ему посылается сообщение, программа работает как ретранслятор, получив сообщение она должна переслать его дальше по ssl, т.е. как узнать от кого пришло данное сообщение, длина... В коде я привел структуру, которую выдернул из одного снифера, почему не привел другой код, по тому что там все как в учебнике, организуется сокет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:01 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
blcksock.pas Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. TSockAddrIn represents the Internet socket address structure used in Windows socket API calls to represent the full specification of a socket port. Unit Winsock typedef sockaddr_in TSockAddrIn; Description TSockAddrIn represents a Windows socket address, including information about the host, port, and protocol. Код: plaintext 1. 2. 3. 4. 5. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:02 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
TCP не имеет доступа к заголовку IP-пакета, посему исходник сниффера фтопку ты можешь определить кто с тобой установил соединение посредством accept Но я подозреваю, что это далеко не единственная твоя ошибка. На твоем месте, я прикрепил бы к сообщению код полностью, а после этого спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:03 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. Вот процедура, где организуется прослушивание сокета... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:12 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
жость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:14 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)жость По тому и спрашиваю :( Не работал я никогда с сокетами, а документацию нормально найти не могу, так как заставили писать не на Си++ а на обычном Си, плюс в основном вся инфа заканчивается на том, как организовать прослушивание или отправить сообщение, а как данное сообщение обработать примеров нет... В теории у каждого сообщения должна быть служебная информация, но как к ней получить доступ не могу понять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:22 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
P.S.: Не ругайтесь сильно, все ведь с чего-то начинали, не все же рождаются гениями :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:24 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
В TCP нет служебной информации. Для ТЕБЯ это просто поток байт данных. Единственное место где сервер узнает кто с ним соединился это accept, подробности можешь посмотреть в MSDN. Я очень сильно удивлюсь если тот УЖОС что ты сюда запостил заработает, но отдаю должное твоему трудолюбию P.S. И нафига тебе вперлось WSA можешь объяснить ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:39 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Очень советую найти и почитать это , то что Unix можешь не обращать внимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:42 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:51 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Пример из старых запасов, вроде работает. Сейчас пишу на Builder-e, там несколько иначе и проще. Пример состоит из двух программ: сервер и клиент, у каждого по 3 файла: tcp_serv.c: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. tcp_serv.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. tcp_serv.rc Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. tcp_clnt.c Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. tcp_clnt.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. tcp_clnt.rc Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 17:05 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Функция accept имеет следующий прототип: SOCKET accept (SOCKET sock, struct sockaddr FAR * addr, int FAR * addrlen); Через параметр sock необходимо указать дескриптор сокета, который находится в режиме приема для выполнения ожидания. Параметр addr должен содержать адрес буфера, в который будет записан адрес узла, подключившегося к серверу. Размер этого буфера необходимо указать в переменной типа int, адрес которой передается через параметр addrlen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 17:17 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Я очень сильно удивлюсь если тот УЖОС что ты сюда запостил заработает, но отдаю должное твоему трудолюбию УЖОС работает... Как говорил это мой первый опыт с сокетами, буду перерабатывать :) не возможно с первого раза создать совершенство, не создав пару монстров... Как я говорил выше, не все рождаются гениями... Gluk (Kazan)Очень советую найти и почитать это, то что Unix можешь не обращать внимания. Спасибо за информацию, постараюсь прилежно изучить данную книгу :) SnowMan2 Пример из старых запасов, вроде работает. Сейчас пишу на Builder-e, там несколько иначе и проще. Спасибо, но к сожалению я не очень хорошо дружу с Visual C, попытаюсь разобратся... Gluk (Kazan)P.S. И нафига тебе вперлось WSA можешь объяснить ??? Ответ на сее безобразие прост... В примере, по которому я учился работе с сокетами, данное использование объяснялось тем, что приложение требовалось привязать к конкретному окну виндовс, что бы задавать ему статичный порт... P.S.: спасибо всем, что потратили время на тот бред, что я написал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 17:22 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
LepajОтвет на сее безобразие прост... В примере, по которому я учился работе с сокетами, данное использование объяснялось тем, что приложение требовалось привязать к конкретному окну виндовс, что бы задавать ему статичный порт... Из WSA тебе понядобятся только Startup и Cleanup :) На еще попсу покороче чем кнышка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 10:02 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
авторсожалению я не очень хорошо дружу с Visual C Visual C тут не причем, все компилилось старым Borland-ом 5.01 Gluk (Kazan)Из WSA тебе понядобятся только Startup и Cleanup Не согласен. ИМХО ассинхронный режим лучше синхронного. Поэтому понадобится WSAAsyncSelect и обработка сообщений. А вот от консольного приложения и функции printf посоветовал бы отказаться, Windows все таки. Также советовал бы на начальном этапе разделить клиент и сервер, так легче разобраться. Затем можно и объединеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 13:46 |
|
||
|
Помогите разобратся с IP адресами
|
|||
|---|---|---|---|
|
#18+
SnowMan2 Gluk (Kazan)Из WSA тебе понядобятся только Startup и Cleanup Не согласен. ИМХО ассинхронный режим лучше синхронного. Поэтому понадобится WSAAsyncSelect и обработка сообщений. А вот от консольного приложения и функции printf посоветовал бы отказаться, Windows все таки. Также советовал бы на начальном этапе разделить клиент и сервер, так легче разобраться. Затем можно и объединеть. Posix-ый select в WinSock прекрасно работает. Извращения с оконными сообщениями совсем ни к чему. Что касается консольных приложений - у меня все сервисы такие, так что как раз в printf не вижу никакого криминала. Приложения они ить РАЗНЫЕ бывають (даже под Windows). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 13:54 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2029523]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 525ms |

| 0 / 0 |
