Skip to content

Instantly share code, notes, and snippets.

@SpComb
Last active July 10, 2017 18:11
Show Gist options
  • Save SpComb/c8b857fc5bb575a1f859f7ea57603a29 to your computer and use it in GitHub Desktop.
Save SpComb/c8b857fc5bb575a1f859f7ea57603a29 to your computer and use it in GitHub Desktop.
net_tcp_client short write corruption: https://github.com/rocketjob/net_tcp_client/issues/10
#!/usr/bin/env ruby
require 'net_tcp_client'
Net::TCPClient.connect(server: 'localhost:1337') do |client|
puts "connected: #{client}"
for i in 0...1000
write = client.write((0...1000).map{|j| "%07d\n" % (j + 1000 * i)}.join)
puts "write #{i * 1000}...: #{write}"
end
end
connected: #<Net::TCPClient:0x00000000f92db0>
write 0...: 8000
write 1000...: 8000
write 2000...: 8000
write 3000...: 8000
write 4000...: 8000
write 5000...: 8000
write 6000...: 8000
write 7000...: 8000
write 8000...: 8000
write 9000...: 8000
write 10000...: 8000
write 11000...: 8000
write 12000...: 8000
write 13000...: 8000
write 14000...: 8000
write 15000...: 8000
write 16000...: 8000
write 17000...: 8000
write 18000...: 8000
write 19000...: 8000
write 20000...: 8000
write 21000...: 8000
write 22000...: 8000
write 23000...: 8000
write 24000...: 8000
write 25000...: 8000
write 26000...: 8000
write 27000...: 8000
write 28000...: 8000
write 29000...: 8000
write 30000...: 8000
write 31000...: 8000
write 32000...: 8000
write 33000...: 8000
write 34000...: 8000
write 35000...: 8000
write 36000...: 8000
write 37000...: 8000
write 38000...: 8000
write 39000...: 8000
write 40000...: 8000
write 41000...: 8000
write 42000...: 8000
write 43000...: 8000
write 44000...: 8000
write 45000...: 8000
write 46000...: 8000
write 47000...: 8000
write 48000...: 8000
write 49000...: 8000
write 50000...: 8000
write 51000...: 8000
write 52000...: 8000
write 53000...: 8000
write 54000...: 8000
write 55000...: 8000
write 56000...: 8000
write 57000...: 8000
write 58000...: 8000
write 59000...: 8000
write 60000...: 8000
write 61000...: 8000
write 62000...: 8000
write 63000...: 8000
write 64000...: 8000
write 65000...: 8000
write 66000...: 8000
write 67000...: 8000
write 68000...: 8000
write 69000...: 8000
write 70000...: 8000
write 71000...: 8000
write 72000...: 8000
write 73000...: 8000
write 74000...: 8000
write 75000...: 8000
write 76000...: 8000
write 77000...: 8000
write 78000...: 8000
write 79000...: 8000
write 80000...: 8000
write 81000...: 8000
write 82000...: 8000
write 83000...: 8000
write 84000...: 8000
write 85000...: 8000
write 86000...: 8000
write 87000...: 8000
write 88000...: 8000
write 89000...: 8000
write 90000...: 8000
write 91000...: 8000
write 92000...: 8000
write 93000...: 8000
write 94000...: 8000
write 95000...: 8000
write 96000...: 8000
write 97000...: 8000
write 98000...: 8000
write 99000...: 8000
write 100000...: 8000
write 101000...: 8000
write 102000...: 8000
write 103000...: 8000
write 104000...: 8000
write 105000...: 8000
write 106000...: 8000
write 107000...: 8000
write 108000...: 8000
write 109000...: 8000
write 110000...: 8000
write 111000...: 8000
write 112000...: 8000
write 113000...: 8000
write 114000...: 8000
write 115000...: 8000
write 116000...: 8000
write 117000...: 8000
write 118000...: 8000
write 119000...: 8000
write 120000...: 8000
write 121000...: 8000
write 122000...: 8000
write 123000...: 8000
write 124000...: 8000
write 125000...: 8000
write 126000...: 8000
write 127000...: 8000
write 128000...: 8000
write 129000...: 8000
write 130000...: 8000
write 131000...: 8000
write 132000...: 8000
write 133000...: 8000
write 134000...: 8000
write 135000...: 8000
write 136000...: 8000
write 137000...: 8000
write 138000...: 8000
write 139000...: 8000
write 140000...: 8000
write 141000...: 8000
write 142000...: 8000
write 143000...: 8000
write 144000...: 8000
write 145000...: 8000
write 146000...: 8000
write 147000...: 8000
write 148000...: 8000
write 149000...: 8000
write 150000...: 8000
write 151000...: 8000
write 152000...: 8000
write 153000...: 8000
write 154000...: 8000
write 155000...: 8000
write 156000...: 8000
write 157000...: 8000
write 158000...: 8000
write 159000...: 8000
write 160000...: 8000
write 161000...: 8000
write 162000...: 8000
write 163000...: 8000
write 164000...: 8000
write 165000...: 8000
write 166000...: 8000
write 167000...: 8000
write 168000...: 8000
write 169000...: 8000
write 170000...: 8000
write 171000...: 8000
write 172000...: 8000
write 173000...: 8000
write 174000...: 8000
write 175000...: 8000
write 176000...: 8000
write 177000...: 8000
write 178000...: 8000
write 179000...: 8000
write 180000...: 8000
write 181000...: 8000
write 182000...: 8000
write 183000...: 8000
write 184000...: 8000
write 185000...: 8000
write 186000...: 8000
write 187000...: 8000
write 188000...: 8000
write 189000...: 8000
write 190000...: 8000
write 191000...: 8000
write 192000...: 8000
write 193000...: 8000
write 194000...: 8000
write 195000...: 8000
write 196000...: 8000
write 197000...: 8000
write 198000...: 8000
write 199000...: 8000
write 200000...: 8000
write 201000...: 8000
write 202000...: 8000
write 203000...: 8000
write 204000...: 8000
write 205000...: 8000
write 206000...: 8000
write 207000...: 8000
write 208000...: 8000
write 209000...: 8000
write 210000...: 8000
write 211000...: 8000
write 212000...: 8000
write 213000...: 8000
write 214000...: 8000
write 215000...: 8000
write 216000...: 8000
write 217000...: 8000
write 218000...: 8000
write 219000...: 8000
write 220000...: 8000
write 221000...: 8000
write 222000...: 8000
write 223000...: 8000
write 224000...: 8000
write 225000...: 8000
write 226000...: 8000
write 227000...: 8000
write 228000...: 8000
write 229000...: 8000
write 230000...: 8000
write 231000...: 8000
write 232000...: 8000
write 233000...: 8000
write 234000...: 8000
write 235000...: 8000
write 236000...: 8000
write 237000...: 8000
write 238000...: 8000
write 239000...: 8000
write 240000...: 8000
write 241000...: 8000
write 242000...: 8000
write 243000...: 8000
write 244000...: 8000
write 245000...: 8000
write 246000...: 8000
write 247000...: 8000
write 248000...: 8000
write 249000...: 8000
write 250000...: 8000
write 251000...: 8000
write 252000...: 8000
write 253000...: 8000
write 254000...: 8000
write 255000...: 8000
write 256000...: 8000
write 257000...: 8000
write 258000...: 8000
write 259000...: 8000
write 260000...: 8000
write 261000...: 8000
write 262000...: 8000
write 263000...: 8000
write 264000...: 8000
write 265000...: 8000
write 266000...: 8000
write 267000...: 8000
write 268000...: 8000
write 269000...: 8000
write 270000...: 8000
write 271000...: 8000
write 272000...: 8000
write 273000...: 8000
write 274000...: 8000
write 275000...: 8000
write 276000...: 8000
write 277000...: 8000
write 278000...: 8000
write 279000...: 8000
write 280000...: 8000
write 281000...: 8000
write 282000...: 8000
write 283000...: 8000
write 284000...: 8000
write 285000...: 8000
write 286000...: 8000
write 287000...: 8000
write 288000...: 8000
write 289000...: 8000
write 290000...: 8000
write 291000...: 8000
write 292000...: 8000
write 293000...: 8000
write 294000...: 8000
write 295000...: 8000
write 296000...: 8000
write 297000...: 8000
write 298000...: 8000
write 299000...: 8000
write 300000...: 8000
write 301000...: 8000
write 302000...: 8000
write 303000...: 8000
write 304000...: 8000
write 305000...: 8000
write 306000...: 8000
write 307000...: 8000
write 308000...: 8000
write 309000...: 8000
write 310000...: 8000
write 311000...: 8000
write 312000...: 8000
write 313000...: 8000
write 314000...: 8000
write 315000...: 8000
write 316000...: 8000
write 317000...: 8000
write 318000...: 8000
write 319000...: 8000
write 320000...: 8000
write 321000...: 8000
write 322000...: 8000
write 323000...: 8000
write 324000...: 8000
write 325000...: 8000
write 326000...: 8000
write 327000...: 8000
write 328000...: 8000
write 329000...: 8000
write 330000...: 8000
write 331000...: 8000
write 332000...: 8000
write 333000...: 8000
write 334000...: 8000
write 335000...: 8000
write 336000...: 8000
write 337000...: 8000
write 338000...: 8000
write 339000...: 8000
write 340000...: 8000
write 341000...: 8000
write 342000...: 8000
write 343000...: 8000
write 344000...: 8000
write 345000...: 8000
write 346000...: 8000
write 347000...: 8000
write 348000...: 8000
write 349000...: 8000
write 350000...: 8000
write 351000...: 8000
write 352000...: 8000
write 353000...: 8000
write 354000...: 8000
write 355000...: 8000
write 356000...: 8000
write 357000...: 8000
write 358000...: 8000
write 359000...: 8000
write 360000...: 8000
write 361000...: 8000
write 362000...: 8000
write 363000...: 8000
write 364000...: 8000
write 365000...: 8000
write 366000...: 8000
write 367000...: 8000
write 368000...: 8000
write 369000...: 8000
write 370000...: 8000
write 371000...: 8000
write 372000...: 8000
write 373000...: 8000
write 374000...: 8000
write 375000...: 8000
write 376000...: 8000
write 377000...: 8000
write 378000...: 8000
write 379000...: 8000
write 380000...: 8000
write 381000...: 8000
write 382000...: 8000
write 383000...: 8000
write 384000...: 8000
write 385000...: 8000
write 386000...: 8000
write 387000...: 8000
write 388000...: 8000
write 389000...: 8000
write 390000...: 8000
write 391000...: 8000
write 392000...: 8000
write 393000...: 8000
write 394000...: 8000
write 395000...: 8000
write 396000...: 8000
write 397000...: 8000
write 398000...: 8000
write 399000...: 8000
write 400000...: 8000
write 401000...: 8000
write 402000...: 8000
write 403000...: 8000
write 404000...: 8000
write 405000...: 8000
write 406000...: 8000
write 407000...: 8000
write 408000...: 8000
write 409000...: 8000
write 410000...: 8000
write 411000...: 8000
write 412000...: 8000
write 413000...: 8000
write 414000...: 8000
write 415000...: 8000
write 416000...: 8000
write 417000...: 8000
write 418000...: 8000
write 419000...: 8000
write 420000...: 8000
write 421000...: 8000
write 422000...: 8000
write 423000...: 8000
write 424000...: 8000
write 425000...: 8000
write 426000...: 8000
write 427000...: 8000
write 428000...: 8000
write 429000...: 8000
write 430000...: 8000
write 431000...: 8000
write 432000...: 8000
write 433000...: 8000
write 434000...: 8000
write 435000...: 8000
write 436000...: 8000
write 437000...: 8000
write 438000...: 8000
write 439000...: 8000
write 440000...: 8000
write 441000...: 8000
write 442000...: 4218
write 443000...: 8000
write 444000...: 8000
write 445000...: 8000
write 446000...: 8000
write 447000...: 8000
write 448000...: 8000
write 449000...: 8000
write 450000...: 8000
write 451000...: 8000
write 452000...: 8000
write 453000...: 8000
write 454000...: 8000
write 455000...: 8000
write 456000...: 8000
write 457000...: 8000
write 458000...: 8000
write 459000...: 8000
write 460000...: 8000
write 461000...: 8000
write 462000...: 8000
write 463000...: 8000
write 464000...: 8000
write 465000...: 8000
write 466000...: 8000
write 467000...: 8000
write 468000...: 8000
write 469000...: 8000
write 470000...: 8000
write 471000...: 8000
write 472000...: 8000
write 473000...: 8000
write 474000...: 8000
write 475000...: 8000
write 476000...: 8000
write 477000...: 8000
write 478000...: 8000
write 479000...: 8000
write 480000...: 8000
write 481000...: 8000
write 482000...: 8000
write 483000...: 8000
write 484000...: 8000
write 485000...: 8000
write 486000...: 8000
write 487000...: 8000
write 488000...: 8000
write 489000...: 8000
write 490000...: 8000
write 491000...: 8000
write 492000...: 8000
write 493000...: 8000
write 494000...: 8000
write 495000...: 8000
write 496000...: 8000
write 497000...: 8000
write 498000...: 8000
write 499000...: 8000
write 500000...: 8000
write 501000...: 8000
write 502000...: 8000
write 503000...: 8000
write 504000...: 8000
write 505000...: 8000
write 506000...: 8000
write 507000...: 8000
write 508000...: 8000
write 509000...: 8000
write 510000...: 8000
write 511000...: 8000
write 512000...: 8000
write 513000...: 8000
write 514000...: 8000
write 515000...: 8000
write 516000...: 8000
write 517000...: 8000
write 518000...: 8000
write 519000...: 8000
write 520000...: 8000
write 521000...: 8000
write 522000...: 8000
write 523000...: 8000
write 524000...: 8000
write 525000...: 8000
write 526000...: 8000
write 527000...: 8000
write 528000...: 8000
write 529000...: 8000
write 530000...: 8000
write 531000...: 8000
write 532000...: 8000
write 533000...: 8000
write 534000...: 8000
write 535000...: 8000
write 536000...: 8000
write 537000...: 8000
write 538000...: 8000
write 539000...: 8000
write 540000...: 8000
write 541000...: 8000
write 542000...: 8000
write 543000...: 8000
write 544000...: 8000
write 545000...: 8000
write 546000...: 8000
write 547000...: 8000
write 548000...: 8000
write 549000...: 8000
write 550000...: 8000
write 551000...: 8000
write 552000...: 8000
write 553000...: 8000
write 554000...: 8000
write 555000...: 8000
write 556000...: 8000
write 557000...: 8000
write 558000...: 8000
write 559000...: 8000
write 560000...: 8000
write 561000...: 8000
write 562000...: 8000
write 563000...: 8000
write 564000...: 8000
write 565000...: 8000
write 566000...: 8000
write 567000...: 8000
write 568000...: 8000
write 569000...: 8000
write 570000...: 8000
write 571000...: 8000
write 572000...: 8000
write 573000...: 8000
write 574000...: 8000
write 575000...: 8000
write 576000...: 8000
write 577000...: 8000
write 578000...: 8000
write 579000...: 8000
write 580000...: 8000
write 581000...: 8000
write 582000...: 8000
write 583000...: 8000
write 584000...: 8000
write 585000...: 8000
write 586000...: 8000
write 587000...: 8000
write 588000...: 8000
write 589000...: 8000
write 590000...: 8000
write 591000...: 8000
write 592000...: 8000
write 593000...: 8000
write 594000...: 8000
write 595000...: 8000
write 596000...: 8000
write 597000...: 8000
write 598000...: 8000
write 599000...: 8000
write 600000...: 8000
write 601000...: 8000
write 602000...: 8000
write 603000...: 8000
write 604000...: 8000
write 605000...: 8000
write 606000...: 8000
write 607000...: 8000
write 608000...: 8000
write 609000...: 8000
write 610000...: 8000
write 611000...: 8000
write 612000...: 8000
write 613000...: 8000
write 614000...: 8000
write 615000...: 8000
write 616000...: 8000
write 617000...: 8000
write 618000...: 8000
write 619000...: 8000
write 620000...: 8000
write 621000...: 8000
write 622000...: 8000
write 623000...: 8000
write 624000...: 8000
write 625000...: 8000
write 626000...: 8000
write 627000...: 8000
write 628000...: 8000
write 629000...: 8000
write 630000...: 8000
write 631000...: 8000
write 632000...: 8000
write 633000...: 8000
write 634000...: 8000
write 635000...: 8000
write 636000...: 8000
write 637000...: 8000
write 638000...: 8000
write 639000...: 3592
write 640000...: 8000
write 641000...: 8000
write 642000...: 8000
write 643000...: 8000
write 644000...: 8000
write 645000...: 8000
write 646000...: 8000
write 647000...: 8000
write 648000...: 8000
write 649000...: 8000
write 650000...: 8000
write 651000...: 8000
write 652000...: 8000
write 653000...: 8000
write 654000...: 8000
write 655000...: 8000
write 656000...: 8000
write 657000...: 8000
write 658000...: 8000
write 659000...: 8000
write 660000...: 8000
write 661000...: 8000
write 662000...: 8000
write 663000...: 8000
write 664000...: 8000
write 665000...: 8000
write 666000...: 8000
write 667000...: 8000
write 668000...: 8000
write 669000...: 8000
write 670000...: 8000
write 671000...: 8000
write 672000...: 8000
write 673000...: 8000
write 674000...: 8000
write 675000...: 8000
write 676000...: 8000
write 677000...: 8000
write 678000...: 8000
write 679000...: 8000
write 680000...: 8000
write 681000...: 8000
write 682000...: 8000
write 683000...: 8000
write 684000...: 8000
write 685000...: 8000
write 686000...: 8000
write 687000...: 8000
write 688000...: 8000
write 689000...: 8000
write 690000...: 8000
write 691000...: 8000
write 692000...: 8000
write 693000...: 8000
write 694000...: 8000
write 695000...: 8000
write 696000...: 8000
write 697000...: 8000
write 698000...: 8000
write 699000...: 8000
write 700000...: 8000
write 701000...: 8000
write 702000...: 8000
write 703000...: 8000
write 704000...: 8000
write 705000...: 8000
write 706000...: 8000
write 707000...: 8000
write 708000...: 8000
write 709000...: 8000
write 710000...: 8000
write 711000...: 8000
write 712000...: 8000
write 713000...: 8000
write 714000...: 8000
write 715000...: 8000
write 716000...: 8000
write 717000...: 8000
write 718000...: 8000
write 719000...: 8000
write 720000...: 8000
write 721000...: 8000
write 722000...: 8000
write 723000...: 8000
write 724000...: 8000
write 725000...: 8000
write 726000...: 8000
write 727000...: 8000
write 728000...: 8000
write 729000...: 8000
write 730000...: 8000
write 731000...: 8000
write 732000...: 8000
write 733000...: 8000
write 734000...: 8000
write 735000...: 8000
write 736000...: 8000
write 737000...: 8000
write 738000...: 8000
write 739000...: 8000
write 740000...: 8000
write 741000...: 8000
write 742000...: 8000
write 743000...: 8000
write 744000...: 8000
write 745000...: 8000
write 746000...: 8000
write 747000...: 8000
write 748000...: 8000
write 749000...: 8000
write 750000...: 8000
write 751000...: 8000
write 752000...: 8000
write 753000...: 8000
write 754000...: 8000
write 755000...: 8000
write 756000...: 8000
write 757000...: 8000
write 758000...: 8000
write 759000...: 8000
write 760000...: 8000
write 761000...: 8000
write 762000...: 8000
write 763000...: 8000
write 764000...: 8000
write 765000...: 8000
write 766000...: 8000
write 767000...: 8000
write 768000...: 8000
write 769000...: 8000
write 770000...: 8000
write 771000...: 8000
write 772000...: 8000
write 773000...: 8000
write 774000...: 8000
write 775000...: 8000
write 776000...: 8000
write 777000...: 8000
write 778000...: 8000
write 779000...: 8000
write 780000...: 8000
write 781000...: 8000
write 782000...: 8000
write 783000...: 8000
write 784000...: 8000
write 785000...: 8000
write 786000...: 8000
write 787000...: 8000
write 788000...: 8000
write 789000...: 8000
write 790000...: 8000
write 791000...: 8000
write 792000...: 8000
write 793000...: 8000
write 794000...: 8000
write 795000...: 8000
write 796000...: 8000
write 797000...: 8000
write 798000...: 8000
write 799000...: 8000
write 800000...: 8000
write 801000...: 8000
write 802000...: 8000
write 803000...: 8000
write 804000...: 8000
write 805000...: 8000
write 806000...: 8000
write 807000...: 8000
write 808000...: 8000
write 809000...: 8000
write 810000...: 8000
write 811000...: 8000
write 812000...: 8000
write 813000...: 8000
write 814000...: 8000
write 815000...: 8000
write 816000...: 8000
write 817000...: 8000
write 818000...: 8000
write 819000...: 8000
write 820000...: 8000
write 821000...: 8000
write 822000...: 8000
write 823000...: 8000
write 824000...: 8000
write 825000...: 8000
write 826000...: 8000
write 827000...: 8000
write 828000...: 2109
write 829000...: 8000
write 830000...: 8000
write 831000...: 8000
write 832000...: 8000
write 833000...: 8000
write 834000...: 8000
write 835000...: 8000
write 836000...: 8000
write 837000...: 8000
write 838000...: 8000
write 839000...: 8000
write 840000...: 8000
write 841000...: 8000
write 842000...: 8000
write 843000...: 8000
write 844000...: 8000
write 845000...: 8000
write 846000...: 8000
write 847000...: 8000
write 848000...: 8000
write 849000...: 8000
write 850000...: 8000
write 851000...: 8000
write 852000...: 8000
write 853000...: 8000
write 854000...: 8000
write 855000...: 8000
write 856000...: 8000
write 857000...: 8000
write 858000...: 8000
write 859000...: 8000
write 860000...: 8000
write 861000...: 8000
write 862000...: 8000
write 863000...: 8000
write 864000...: 8000
write 865000...: 8000
write 866000...: 8000
write 867000...: 8000
write 868000...: 8000
write 869000...: 8000
write 870000...: 8000
write 871000...: 8000
write 872000...: 8000
write 873000...: 8000
write 874000...: 8000
write 875000...: 8000
write 876000...: 8000
write 877000...: 8000
write 878000...: 8000
write 879000...: 8000
write 880000...: 8000
write 881000...: 8000
write 882000...: 8000
write 883000...: 8000
write 884000...: 8000
write 885000...: 8000
write 886000...: 8000
write 887000...: 8000
write 888000...: 8000
write 889000...: 8000
write 890000...: 8000
write 891000...: 8000
write 892000...: 8000
write 893000...: 8000
write 894000...: 8000
write 895000...: 8000
write 896000...: 8000
write 897000...: 8000
write 898000...: 8000
write 899000...: 8000
write 900000...: 8000
write 901000...: 8000
write 902000...: 8000
write 903000...: 8000
write 904000...: 8000
write 905000...: 8000
write 906000...: 8000
write 907000...: 8000
write 908000...: 8000
write 909000...: 8000
write 910000...: 8000
write 911000...: 8000
write 912000...: 8000
write 913000...: 8000
write 914000...: 8000
write 915000...: 8000
write 916000...: 8000
write 917000...: 8000
write 918000...: 8000
write 919000...: 8000
write 920000...: 8000
write 921000...: 8000
write 922000...: 8000
write 923000...: 8000
write 924000...: 8000
write 925000...: 8000
write 926000...: 8000
write 927000...: 8000
write 928000...: 8000
write 929000...: 8000
write 930000...: 8000
write 931000...: 8000
write 932000...: 8000
write 933000...: 8000
write 934000...: 8000
write 935000...: 8000
write 936000...: 8000
write 937000...: 8000
write 938000...: 8000
write 939000...: 8000
write 940000...: 8000
write 941000...: 8000
write 942000...: 8000
write 943000...: 8000
write 944000...: 8000
write 945000...: 8000
write 946000...: 8000
write 947000...: 8000
write 948000...: 8000
write 949000...: 8000
write 950000...: 8000
write 951000...: 8000
write 952000...: 8000
write 953000...: 8000
write 954000...: 8000
write 955000...: 8000
write 956000...: 8000
write 957000...: 8000
write 958000...: 8000
write 959000...: 8000
write 960000...: 8000
write 961000...: 8000
write 962000...: 8000
write 963000...: 8000
write 964000...: 8000
write 965000...: 8000
write 966000...: 8000
write 967000...: 8000
write 968000...: 8000
write 969000...: 8000
write 970000...: 8000
write 971000...: 8000
write 972000...: 8000
write 973000...: 8000
write 974000...: 8000
write 975000...: 8000
write 976000...: 8000
write 977000...: 8000
write 978000...: 8000
write 979000...: 8000
write 980000...: 8000
write 981000...: 8000
write 982000...: 8000
write 983000...: 8000
write 984000...: 8000
write 985000...: 8000
write 986000...: 8000
write 987000...: 8000
write 988000...: 8000
write 989000...: 8000
write 990000...: 8000
write 991000...: 8000
write 992000...: 8000
write 993000...: 8000
write 994000...: 8000
write 995000...: 8000
write 996000...: 8000
write 997000...: 8000
write 998000...: 8000
write 999000...: 8000
#!/usr/bin/env ruby
require 'socket'
tcp_server = TCPServer.new('127.0.0.1', 1337)
loop do
tcp_client = tcp_server.accept
af, port, hostname, ip = tcp_client.peeraddr
puts "connect: #{ip}:#{port}"
prev = nil
loop do
line = tcp_client.gets
break if line.nil?
item = line.to_i
if prev && item != prev + 1
puts '! %07d %+3d' % [item, prev - item]
end
prev = item
if item < 100000 && item % 10000 == 0
puts ". #{item}"
sleep 1.0
elsif item % 100000 == 0
puts ". #{item}"
sleep 1.0
end
end
puts "eof"
end
connect: 127.0.0.1:37232
. 0
. 10000
. 20000
. 30000
. 40000
. 50000
. 60000
. 70000
. 80000
. 90000
. 100000
. 200000
. 300000
. 400000
! 40443000 -40000474
! 0443001 +39999999
. 500000
. 600000
! 0640000 -552
. 700000
. 800000
! 82820829000 -82820000738
! 0829001 +82819999999
. 900000
eof
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment