คำถามติดแท็ก sockets

จุดสิ้นสุดของโฟลว์การสื่อสารระหว่างกระบวนการแบบสองทิศทาง ซึ่งมักหมายถึงโฟลว์ของกระบวนการผ่านการเชื่อมต่อเครือข่าย แต่ไม่ได้ จำกัด อยู่เพียงแค่นั้น อย่าสับสนกับ WebSocket (โปรโตคอล) หรือนามธรรมอื่น ๆ (เช่น socket.io)


1
SO_REUSEADDR และ SO_REUSEPORT แตกต่างกันอย่างไร
man pagesและเอกสารโปรแกรมเมอร์หาตัวเลือกซ็อกเก็ตSO_REUSEADDRและSO_REUSEPORTมีความแตกต่างกันสำหรับระบบปฏิบัติการที่แตกต่างกันและมักจะทำให้เกิดความสับสนอย่างมาก SO_REUSEPORTบางระบบปฏิบัติการไม่ได้มีตัวเลือก เว็บเต็มไปด้วยข้อมูลที่ขัดแย้งกันเกี่ยวกับเรื่องนี้และบ่อยครั้งที่คุณสามารถค้นหาข้อมูลที่เป็นจริงสำหรับการใช้งานซ็อกเก็ตเดียวของระบบปฏิบัติการเฉพาะซึ่งอาจไม่ได้กล่าวถึงอย่างชัดเจนในข้อความ แล้วSO_REUSEADDRแตกต่างกันSO_REUSEPORTอย่างไร ระบบที่ไม่มีSO_REUSEPORTข้อ จำกัด มากขึ้น? และสิ่งที่เป็นพฤติกรรมที่คาดหวังถ้าฉันใช้อย่างใดอย่างหนึ่งในระบบปฏิบัติการที่แตกต่างกัน?

2
“ การเชื่อมต่อรีเซ็ตโดยเพียร์” หมายความว่าอย่างไร
ความหมายของข้อผิดพลาด "การเชื่อมต่อรีเซ็ตโดยเพียร์" ในการเชื่อมต่อ TCP คืออะไร? มันเป็นข้อผิดพลาดร้ายแรงหรือเพียงแค่การแจ้งเตือนหรือเกี่ยวข้องกับความล้มเหลวของเครือข่าย?
648 sockets  tcp 

10
TypeError: วัตถุ 'โมดูล' ไม่สามารถเรียกได้
File "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", line 82, in __init__ self.serv = socket(AF_INET,SOCK_STREAM) TypeError: 'module' object is not callable เหตุใดฉันจึงได้รับข้อผิดพลาดนี้ ฉันสับสน คุณต้องรู้อะไรบ้างเพื่อตอบคำถามของฉัน
543 python  sockets 

6
ไคลเอ็นต์บนโหนด: Uncaught ReferenceError: require ไม่ได้ถูกกำหนดไว้
ดังนั้นฉันกำลังเขียนแอปพลิเคชันที่มีโหนด / express + jade combo ฉันมีclient.jsซึ่งโหลดบนไคลเอนต์ ในไฟล์นั้นฉันมีรหัสที่เรียกใช้ฟังก์ชันจากไฟล์ JavaScript อื่น ๆ ความพยายามของฉันคือการใช้ var m = require('./messages'); เพื่อที่จะโหลดเนื้อหาของmessages.js(เช่นเดียวกับที่ฉันทำในฝั่งเซิร์ฟเวอร์) และต่อมาในฟังก์ชั่นการโทรจากไฟล์นั้น แต่ไม่ได้กำหนดไว้ในฝั่งไคลเอ็นต์และมันจะพ่นข้อผิดพลาดของแบบฟอร์มrequireUncaught ReferenceError: require is not defined ไฟล์ JS อื่น ๆ เหล่านี้ยังโหลดในรันไทม์ที่ไคลเอนต์เพราะฉันวางลิงค์ที่ส่วนหัวของหน้าเว็บ ดังนั้นไคลเอนต์จึงรู้ถึงฟังก์ชั่นทั้งหมดที่ส่งออกจากไฟล์อื่นเหล่านี้ ฉันจะเรียกใช้ฟังก์ชันเหล่านี้จากไฟล์ JS อื่น ๆ เหล่านี้ (เช่นmessages.js) ในclient.jsไฟล์หลักที่เปิดซ็อกเก็ตไปยังเซิร์ฟเวอร์ได้อย่างไร

18
รับที่อยู่ IP ของเครื่องปัจจุบันโดยใช้ Java
ฉันพยายามที่จะพัฒนาระบบที่มีโหนดต่าง ๆ ที่ทำงานบนระบบที่แตกต่างกันหรือบนพอร์ตที่ต่างกันในระบบเดียวกัน ตอนนี้โหนดทั้งหมดสร้างซ็อกเก็ตที่มี IP เป้าหมายเป็น IP ของโหนดพิเศษที่รู้จักกันในชื่อโหนดบูตสแตรปปิ้ง จากนั้นโหนดจะสร้างขึ้นเองServerSocketและเริ่มฟังการเชื่อมต่อ โหนด bootstrapping เก็บรักษารายการของโหนดและส่งคืนพวกเขาเมื่อถูกสอบถาม ตอนนี้สิ่งที่ฉันต้องการคือโหนดจะต้องลงทะเบียน IP กับโหนด bootstrapping ฉันลองใช้cli.getInetAddress()เมื่อลูกค้าเชื่อมต่อกับServerSocketโหนดบูตสแตรปปิ้ง แต่ไม่ได้ผล ฉันต้องการไคลเอนต์เพื่อลงทะเบียน PPP IP หากมี; มิฉะนั้น LAN IP หากมี; มิฉะนั้นจะต้องลงทะเบียน 127.0.0.1 โดยสมมติว่าเป็นคอมพิวเตอร์เครื่องเดียวกัน ใช้รหัส: System.out.println(Inet4Address.getLocalHost().getHostAddress()); หรือ System.out.println(InetAddress.getLocalHost().getHostAddress()); ที่อยู่ IP การเชื่อมต่อ PPP ของฉันคือ: 117.204.44.192 แต่ข้างบนส่งคืนฉัน 192.168.1.2 แก้ไข ฉันกำลังใช้รหัสต่อไปนี้: Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface …
291 java  sockets  ip 

14
ฉันจะดีบักข้อผิดพลาด ECONNRESET ใน Node.js ได้อย่างไร
ฉันใช้แอพพลิเคชั่น Express.js โดยใช้ Socket.io สำหรับเว็บแชทและฉันได้รับข้อผิดพลาดต่อไปนี้แบบสุ่มประมาณ 5 ครั้งในช่วง 24 ชั่วโมง กระบวนการโหนดถูกห่อในตลอดไปและจะรีสตาร์ทเองทันที ปัญหาคือการรีสตาร์ท Express ทำให้ผู้ใช้ของฉันออกจากห้องและไม่มีใครต้องการมัน เว็บเซิร์ฟเวอร์ถูกพร็อกซีโดย HAProxy ไม่มีปัญหาเรื่องความเสถียรของซ็อกเก็ตเพียงแค่ใช้การถ่ายโอนเว็บและซ็อกเก็ตแฟลช ฉันไม่สามารถทำซ้ำสิ่งนี้โดยเจตนา นี่เป็นข้อผิดพลาดกับโหนดv0.10.11: events.js:72 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET //alternatively it s a 'write' at errnoException (net.js:900:11) at TCP.onread (net.js:555:19) error: Forever detected script exited with code: 8 error: Forever …
288 node.js  sockets  tcp  express 

17
แอพพลิเคชั่นสองตัวสามารถฟังพอร์ตเดียวกันได้หรือไม่?
แอปพลิเคชั่นสองตัวในเครื่องเดียวกันเชื่อมกับพอร์ตและที่อยู่ IP เดียวกันได้หรือไม่ เมื่อก้าวไปอีกขั้นหนึ่งแอปหนึ่งสามารถรับฟังคำขอที่มาจาก IP ที่แน่นอนและอีกอันไปยัง IP ระยะไกลอื่นได้หรือไม่ ฉันรู้ว่าฉันสามารถมีแอปพลิเคชั่นเดียวที่เริ่มต้นสองเธรด (หรือส้อม) เพื่อให้มีพฤติกรรมที่คล้ายกัน แต่แอปพลิเคชันสองรายการที่ไม่มีสิ่งใดเหมือนกันสามารถทำได้เหมือนกันหรือไม่
283 sockets  tcp  udp  port  communication 

30
ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ภายในผ่านซ็อกเก็ต '/var/lib/mysql/mysql.sock' (2)
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเชื่อมต่อกับ mysql: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) มีวิธีแก้ไขข้อผิดพลาดนี้หรือไม่? อะไรคือเหตุผลเบื้องหลัง
255 mysql  sockets  connect 

8
ซ็อกเก็ตปิด vs ปิด?
ใน C ฉันเข้าใจว่าถ้าเราปิดซ็อกเก็ตหมายความว่าซ็อกเก็ตจะถูกทำลายและสามารถนำกลับมาใช้ใหม่ได้ในภายหลัง วิธีการปิดระบบ? คำอธิบายกล่าวว่าปิดครึ่งหนึ่งของการเชื่อมต่อเพล็กซ์กับซ็อกเก็ตนั้น แต่ซ็อกเก็ตนั้นจะถูกทำลายเหมือนการcloseเรียกของระบบหรือไม่
214 c  sockets  networking 

7
ความแตกต่างระหว่าง AF_INET และ PF_INET ในการเขียนโปรแกรมซ็อกเก็ตคืออะไร?
ความแตกต่างระหว่าง AF_INET และ PF_INET ในการเขียนโปรแกรมซ็อกเก็ตคืออะไร? ฉันสับสนระหว่างการใช้ AF_INET และ PF_INET ในและsocket()bind() นอกจากนี้วิธีการให้ที่อยู่ IP ในsin_addrสาขา?
205 c  linux  sockets 

10
ขนาดแพ็คเก็ต UDP ที่ปลอดภัยที่ใหญ่ที่สุดบนอินเทอร์เน็ตคืออะไร
ฉันได้อ่านบทความเกี่ยวกับขนาดแพ็คเก็ต UDP แล้ว แต่ไม่สามารถสรุปได้ว่าอะไรถูกต้อง จำนวนบริการ จำกัด แพ็คเก็ต UDP ที่ใหญ่ที่สุดที่ 512 ไบต์ (เช่น dns) รับMTUขั้นต่ำบนอินเทอร์เน็ตคือ 576 และขนาดของส่วนหัว IPv4 คือ 20 ไบต์และ UDP ส่วนหัว 8 ไบต์ ทำให้มีข้อมูล 548 ไบต์สำหรับข้อมูลผู้ใช้ ฉันจะสามารถใช้แพ็คเก็ตได้ถึงขนาด 548 โดยไม่มีการกระจายตัวของแพ็กเก็ตหรือไม่ หรือมีบางสิ่งที่ผู้สร้าง DNS รู้และทำไมพวกเขาจึง จำกัด ไว้ที่ 512 ไบต์ ฉันสามารถสูงกว่า 548 ไบต์ได้อย่างปลอดภัยหรือไม่
201 networking  sockets  udp  ipv4 

5
AF_INET คืออะไรและทำไมฉันต้องใช้
ฉันเริ่มต้นด้วยการเขียนโปรแกรมซ็อกเก็ตและฉันเห็นสิ่งนี้ต่อไป AF_INETต่อไป กระนั้นฉันก็ไม่เคยเห็นสิ่งใดมาใช้แทน อาจารย์ของฉันไม่เป็นประโยชน์และพูดว่า "คุณแค่ต้องการมัน" ดังนั้นคำถามของฉัน: อะไรคือจุดประสงค์ของ AF_INETอะไร? มีอะไรอีกบ้างที่เคยใช้แทนมัน? ถ้าไม่ทำไมมันอยู่ที่นั่น? สำหรับการเปลี่ยนแปลงที่เป็นไปได้ในอนาคต? ถ้าเป็นเช่นนั้นอะไรและทำไม
201 sockets 

7
ความแตกต่างระหว่าง read () และ recv () และระหว่าง send () และ write () คืออะไร
อะไรคือความแตกต่างระหว่างread()และและrecv()และระหว่างsend()และwrite()ในการเขียนโปรแกรมซ็อกเก็ตในแง่ของการแสดงความเร็วและพฤติกรรมอื่น ๆ ?

16
จะหาพอร์ตที่ใช้ได้อย่างไร
ฉันต้องการเริ่มต้นเซิร์ฟเวอร์ที่ฟังพอร์ต ฉันสามารถระบุพอร์ตได้อย่างชัดเจนและใช้งานได้ แต่ฉันต้องการค้นหาพอร์ตด้วยวิธีอัตโนมัติ ในส่วนนี้ฉันมีสองคำถาม ฉันควรค้นหาหมายเลขพอร์ตในช่วงใด (ฉันใช้พอร์ต 12345, 12346 และ 12347 และมันก็ใช้ได้) ฉันจะทราบได้อย่างไรว่าพอร์ตที่กำหนดไม่มีซอฟต์แวร์อื่นครอบครองอยู่?
195 java  networking  sockets  port 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.