
Windows ãããã°ã®ãã³ã
megayuchi
誰ãæããŠãããªã Windows ãããã°æè¡ãåŠã³ãŸãããã
åçŽ
debugging, debugger, windows-programming
ãã®è¬çŸ©ã§ã¯ããªã³ã©ã€ã³ã²ãŒã éçºã«å¿ èŠãªTCP/IPãããã¯ãŒã¯ããã°ã©ãã³ã°ã®æ žå¿ããå®åãéèŠããŠåŠã³ãŸãã ãœã±ããã®åºæ¬åçãããã¯ã©ã€ã¢ã³ãã»ãµãŒããŒæ§é ã®èšèšãèªäœã®ãããã¯ãŒã¯ã©ã€ãã©ãªãçšããã²ãŒã ãã¬ãŒã ã¯ãŒã¯ã®å®è£ ãŸã§ã段éçã«åŠç¿ããŸãã æ±ãå å®¹ïŒ ãããã¯ãŒã¯ã®åºæ¬æŠå¿µãšTCP/IPã®åäœæ¹åŒ Socket APIãå©çšããTCPããã°ã©ãã³ã° ãã±ãããããã³ã«ã®èšèšããã³è»¢éæ§é ã®å®è£ ã¯ã©ã€ã¢ã³ãïŒãµãŒããŒåã²ãŒã ãã¬ãŒã ã¯ãŒã¯ã®éçº å®éã®ãªã³ã©ã€ã³ã²ãŒã éçºã«å¿ èŠãªæé©åããã³å®åäžã®ãã³ã 泚æäºé ïŒ Windowsäžã§Visual Studioã䜿çšããŠè¬çŸ©ãé²ããŸããæšæºçãªbsd socket APIã䜿çšããŸãããunixç³»OSãšã¯è¥å¹²ã®éãããããŸãã IOCPãšOverlapped I/Oã¯æ±ããŸããã
åè¬ç 63å
é£æåºŠ äžçŽä»¥äž
åè¬æé ç¡å¶é


åŠç¿ããåè¬è ã®ã¬ãã¥ãŒ
5.0
ìí
ãšãŠãæçãªè¬çŸ©ã§ãã è¬çŸ©ãèŽããåŸãäœããªãç¶æ ããã³ãŒããäžã€äžã€æã¡èŸŒãã§ã¿ãŠãããåãããªãéšåã¯è¬çŸ©ãããäžåºŠèŠãªãã埩ç¿ããŠããŸããããšãŠã圹ã«ç«ã£ãŠããŸãã ããããšãããããŸãã
5.0
wolfclaw4
å°±è·æŽ»åäžã®æ¹ãªãããã²èããŠã»ããã§ãã
5.0
ìë°ëì
è¬çŸ©è³æãå å®ããŠæäŸãããŠãããããæ·±ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
TCP/IPã®çè§£ãšå¿çš
ãœã±ããããã°ã©ãã³ã°
ãããã¯ãŒã¯ããã°ã©ãã³ã°
ãªã³ã©ã€ã³ã²ãŒã ãµãŒããŒããã°ã©ãã³ã°
ãã«ããã¬ã€ã²ãŒã ããå€§èŠæš¡ãªãã¬ã€ã€ãŒãæ¥ç¶ããMMOã²ãŒã ãã©ã®ããã«åäœããã®ããçåã«æã£ãããšã¯ãããŸãããïŒèªäœã²ãŒã ã«ãããã¯ãŒã¯æ©èœã远å ããŠããªã³ã©ã€ã³ã¢ãŒãã«å¯Ÿå¿ããããšæã£ãããšã¯ãããŸãããïŒ
ããã§ããã°ãæ¬è¬çŸ©ãã圹ã«ç«ã¡ãŸãã
ã€ã³ã¿ãŒãããäžã§åçŽã«ããŒã¿ãéåä¿¡ããã³ãŒããæžãã®ã§ããã°ãsocket APIã䜿çšããŠç°¡åã«å®è£
ã§ããŸããããããåçŽã«ããŒã¿ãéåä¿¡ããã³ãŒãã¯ãã²ãŒã éçºã«ããããããã¯ãŒã¯ããã°ã©ãã³ã°ãšã¯ããç°ãªããŸããæ¬è¬åº§ã§ã¯ãåçŽãªAPIã®äœ¿çšã«ãšã©ãŸãããå®éã«äœ¿çšã§ãããããã¯ãŒã¯ã³ãŒããäœæãããããã¯ã©ã€ã¢ã³ãïŒãµãŒããŒã¢ãã«ã®ãªã³ã©ã€ã³ã²ãŒã ã«é©çšããæ¹æ³ã説æããŸãã
OSI 7éå±€ãšTCP/IP 4éå±€ã«ã€ããŠç޹ä»ãããããã®æŠå¿µãã€ã³ã¿ãŒãããã«ã©ã®ããã«çµã¿èŸŒãŸããŠãããã説æããŸãã
ã€ã³ã¿ãŒããããæ§æããäž»èŠãªãããã³ã«ã§ããTCP/IPã®æè¡çãªåäœåçãåŠã³ãŸããTCPããããŒãšIPããããŒã®æ§é ãTCPã®SEQçªå·ãšACKå¿çã·ã¹ãã ã3ãŠã§ã€ãã³ãã·ã§ã€ã¯ã«ããæ¥ç¶ç¢ºç«ã4ãŠã§ã€ãã³ãã·ã§ã€ã¯ã«ããæ¥ç¶çµäºã«ã€ããŠèª¬æããŸãã
Windowsã«ãããSocket APIå®è£
ã§ããWinsockã玹ä»ããŸãã
WinsockãšUnixç³»Socket APIã®éãã説æããŸããWinsockããã°ã©ãã³ã°ã§äž»ã«äœ¿çšãã颿°ãšæ©èœããã¬ãã¥ãŒããŸãã
æ¥ç¶èŠæ±ãåããAPIãšæ¥ç¶èŠæ±ãè¡ãAPIã䜿çšããŠãæåã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®ã³ãŒããäœæããŸãã
send()颿°ãšrecv()颿°ã䜿çšããŠãå®éã«ããŒã¿ãéåä¿¡ããŠã¿ãŸãããã®æç¹ã§ã¯blocking mode socketã«ã€ããŠã®ã¿æ±ããŸãã
blocking mode socketã¯äœ¿ãããããã®ã®ããªã¢ã«ã¿ã€ã ã²ãŒã ã§äœ¿çšããã«ã¯ç¡çããããŸããnon-blocking socketã䜿çšããŠãå®éã®ã²ãŒã ããã°ã©ãã³ã°ã«å©çšã§ãããããã¯ãŒã¯ã³ãŒããäœæããæ¹æ³ã説æããŸãã
äŸå€ç¶æ³ã«å¯ŸåŠããããã«ã¯ãsocketã®åºæ¬æ©èœã ãã«äŸåããããšã¯ã§ããŸãããTCPã®ç¹æ§äžçºçãåŸãäŸå€ç¶æ³ã«åããRecv-BufferãšSend-Bufferãå®è£ ããŠã¿ãŸããããã¯æ¬æ Œçãªãããã¯ãŒã¯ã©ã€ãã©ãªéçºã«ãããæ žå¿çãªæ©èœã§ãã
ã²ãŒã ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã§å ±éããŠäœ¿çšã§ãããããã¯ãŒã¯ã©ã€ãã©ãªãèšèšããå®éã«å®è£ ããŠã¿ãŸããåã« socket api ãå©çšããŠéåä¿¡ããæ©èœãå®è£ ããæ®µéãããå®éã®è£œåéçºãžãšäºæ®µé以äžã¹ãããã¢ããã§ããŸãã
ã³ãŒããã³ããŒ&ããŒã¹ãããã¬ãã«ãè±ããæ¬åœã®ã¢ãžã¥ãŒã«åãå®çŸããã«ã¯ããã€ããªã¬ãã«ã§åé¢ããå¿ èŠããããŸãããããã¯ãŒã¯ã©ã€ãã©ãªã®ã³ãŒããDLLãšããŠåé¢ããã³ã³ãã³ãã¬ã€ã€ãŒãšãããã¯ãŒã¯ã¬ã€ã€ãŒã®å¢çãæç¢ºã«ããæ¹æ³ã玹ä»ããŸããããã¯å®éã®è£œåéçºã«å€§ãã«åœ¹ç«ã¡ãŸãã
å®å šãªã²ãŒã ã§ã¯ãããŸãããããªã³ã©ã€ã³ã²ãŒã ãéçºããããã®å¿ é èŠçŽ ãå®è£ ããŠã¿ãŸããååã®è¬çŸ©ã§äœæãããããã¯ãŒã¯ã©ã€ãã©ãªã䜿çšããè€æ°ã®ã¯ã©ã€ã¢ã³ãããµãŒããŒã«æ¥ç¶ããŠç§»ååŠçãåæããç°¡åãªãã¢ãäœæããŸãã
ãªã³ã©ã€ã³ã²ãŒã ã®ãããã¯ãŒã¯åž¯åå¹ ãšãµãŒããŒæ©åšã®æ§èœå¹çãé«ããããã®æè¡ã玹ä»ããŸãããŸããUDPãšTCPã«é¢ãã誀解ã«ã€ããŠãæŽçããŸãã
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã³ããŒãžã§ã³ïŒOSïŒïŒWindows 10/11
䜿çšããŒã«ïŒVisual Studio 2022
PDFæäŸ
æ·»ä»ãã¡ã€ã«ã«ãããœãŒã¹ã³ãŒãã®æäŸ
å¿ é
C/C++
åºç€çãªWindowsããã°ã©ãã³ã°
æšå¥šïŒä»¥äžã®è¬çŸ©ã圹ç«ã€å ŽåããããŸããïŒ
Windowsã·ã¹ãã ããã°ã©ãã³ã°ïŒhttps://inf.run/VciKCïŒ
Windowsãããã°ã®ãã³ãïŒhttps://inf.run/KH5J6ïŒ
Windowsç°å¢ã§winsock APIã䜿çšããŠè¬çŸ©ãé²ããŸãã
Linuxãå«ãUNIXç³»ã§ã䜿çšã§ããå ±éã®socket APIæè¡ãæ±ããŸãããå®ç¿ç°å¢ã¯Windows + Visual Studio 2022ã§ãã
æšæºsocket API以å€ã®Overlapped I/OãIOCP(I/O Completion Port)ãªã©ã®æè¡ã¯æ±ããŸããã
åŠç¿å¯Ÿè±¡ã¯
誰ã§ãããïŒ
ã²ãŒã ãµãŒããŒïŒã¯ã©ã€ã¢ã³ãã®ãããã¯ãŒã¯æ§é ãèªãå®è£ ãããéçºè
TCP/IPããœã±ãããªã©ãããã¯ãŒã¯ã®åºå¹¹æè¡ãå®è·µçã«åŠã³ããæ¹
åæç¥èã
å¿
èŠã§ããããïŒ
C/C++
Windowsããã°ã©ãã³ã°
ã€ã³ãã©ã³èªèšŒ
ãã£ãªã¢èªèšŒ
3,441
åè¬ç
117
åè¬ã¬ãã¥ãŒ
25
åç
4.9
è¬åº§è©äŸ¡
11
è¬åº§
C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket
D3D12ããã°ã©ãã³ã°åºç€ç·š - https://inf.run/7gJhS
D3D12ããã°ã©ãã³ã°åºç€ãã©ã¹ - https://inf.run/itHDW
DirectX Raytracing ããã°ã©ãã³ã° - https://inf.run/cQqx7
Windows System ããã°ã©ãã³ã° - https://inf.run/AwfCv
Windowsãããã°ã®ãã³ã - https://inf.run/zL7E4
ããã° : https://megayuchi.com
Youtube : https://youtube.com/megayuchi
LinkedIn : https://www.linkedin.com/in/megayuchi/
å šäœ
11ä»¶ â (11æé 56å)
è¬åº§è³æïŒãããããããïŒ:
5. send() / recv()
48:18
å šäœ
8ä»¶
5.0
8ä»¶ã®åè¬ã¬ãã¥ãŒ
åè¬ã¬ãã¥ãŒ 1
â
å¹³åè©äŸ¡ 5.0
åè¬ã¬ãã¥ãŒ 4
â
å¹³åè©äŸ¡ 5.0
åè¬ã¬ãã¥ãŒ 7
â
å¹³åè©äŸ¡ 4.4
5
ãšãŠãæçãªè¬çŸ©ã§ãã è¬çŸ©ãèŽããåŸãäœããªãç¶æ ããã³ãŒããäžã€äžã€æã¡èŸŒãã§ã¿ãŠãããåãããªãéšåã¯è¬çŸ©ãããäžåºŠèŠãªãã埩ç¿ããŠããŸããããšãŠã圹ã«ç«ã£ãŠããŸãã ããããšãããããŸãã
åè¬ã¬ãã¥ãŒ 9
â
å¹³åè©äŸ¡ 5.0
åè¬ã¬ãã¥ãŒ 1
â
å¹³åè©äŸ¡ 5.0
ç¥èå ±æè ã®ä»ã®è¬åº§ãèŠãŠã¿ãŸãããïŒ
åãåéã®ä»ã®è¬åº§ãèŠãŠã¿ãŸãããïŒ
ï¿¥24,608