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

Transmission Control Protocol (TCP) เป็นโปรโตคอลชั้นการขนส่งที่ให้บริการสตรีมข้อมูลที่มุ่งเน้นการเชื่อมต่อพร้อมการรับประกันการส่งมอบตามลำดับ

14
java.net.ConnectException: การเชื่อมต่อถูกปฏิเสธ
ฉันพยายามใช้การเชื่อมต่อ TCP ทุกอย่างทำงานได้ดีจากฝั่งเซิร์ฟเวอร์ แต่เมื่อฉันเรียกใช้โปรแกรมไคลเอนต์ (จากคอมพิวเตอร์ไคลเอนต์) ฉันได้รับข้อผิดพลาดต่อไปนี้: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.<init>(Socket.java:375) at java.net.Socket.<init>(Socket.java:189) at TCPClient.main(TCPClient.java:13) ฉันพยายามเปลี่ยนหมายเลขซ็อกเก็ตในกรณีที่ใช้งานอยู่ แต่ไม่มีประโยชน์ใครจะรู้ว่าอะไรเป็นสาเหตุของข้อผิดพลาดนี้ & วิธีแก้ไข รหัสเซิร์ฟเวอร์: //TCPServer.java import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception …
186 java  networking  tcp 

4
อะไรคือความแตกต่างพื้นฐานระหว่าง WebSockets และ TCP บริสุทธิ์?
ฉันได้อ่านเกี่ยวกับWebSocketsและฉันสงสัยว่าทำไมเบราว์เซอร์ไม่สามารถเปิดการเชื่อมต่อ TCP เล็กน้อยและสื่อสารกับเซิร์ฟเวอร์เหมือนแอปพลิเคชันเดสก์ท็อปอื่น และทำไมการสื่อสารนี้เป็นไปได้ผ่าน websockets
167 tcp  websocket 

8
ตรวจสอบสถานะของหนึ่งพอร์ตบนรีโมตโฮสต์ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันต้องการบรรทัดคำสั่งที่สามารถตรวจสอบสถานะพอร์ตบนรีโมตโฮสต์ ฉันพยายามping xxx.xxx.xxx.xxx:161แต่ไม่รู้จัก "โฮสต์" ฉันคิดว่ามันเป็นคำตอบที่ "ดี" จนกว่าฉันจะทำคำสั่งเดียวกันกับโฮสต์ที่ฉันรู้ว่าพอร์ตนั้นเปิด นี่เป็นไฟล์แบตช์บน Windows ที่จะตรวจสอบสถานะของพอร์ตระยะไกลจากนั้นเรียกใช้คำสั่งที่ใช้พอร์ตระยะไกลนั้นเพื่อรับข้อมูลจากนั้นคำสั่งตรวจสอบพอร์ตระยะไกลอีกครั้งจากนั้นคำสั่งที่ใช้พอร์ตนั้นบนเซิร์ฟเวอร์ถัดไป และอื่น ๆ ฉันดูทุกที่และคิดว่า ping อาจทำได้ แต่ต้องมี ping หลายเวอร์ชันฉันคิดว่าเพราะเซิร์ฟเวอร์ที่ฉันกำลังทำอยู่ไม่แสดงตัวเลือกนั้น เพียงหัวเราะเบา ๆ ฉันลองใช้ตัวตรวจสอบพอร์ตระยะไกลผ่านเว็บจากเว็บไซต์ - และผลลัพธ์นั้นถูกต้องสำหรับทั้งเซิร์ฟเวอร์ "ปัญหา" และเซิร์ฟเวอร์ที่ถูกต้อง อย่างไรก็ตามฉันไม่สามารถใช้มันในการทำงานแบบแบตช์ด้วย IP ของเซิร์ฟเวอร์ 500+ ในนั้น มีสิ่งที่ฉันสามารถทำได้ง่ายหรือไม่ ทักษะ Perl ของฉันเป็นสนิมอย่างมาก (ใช้หรือสูญเสีย) ไม่ทราบภาษาอื่น ๆ ที่ใช้ Windows ยกเว้นชุดงาน …
158 windows  batch-file  tcp  cmd 

18
วิธีเขียนเซิร์ฟเวอร์ที่ใช้ Tcp / Ip ที่ปรับขนาดได้
ฉันอยู่ในขั้นตอนการออกแบบการเขียนแอปพลิเคชัน Windows Service ใหม่ที่ยอมรับการเชื่อมต่อ TCP / IP สำหรับการเชื่อมต่อที่ใช้เวลานาน (นั่นคือไม่เหมือน HTTP ที่มีการเชื่อมต่อระยะสั้นจำนวนมาก แต่เป็นไคลเอนต์ที่เชื่อมต่อ แม้สัปดาห์) ฉันกำลังมองหาแนวคิดสำหรับวิธีที่ดีที่สุดในการออกแบบสถาปัตยกรรมเครือข่าย ฉันจะต้องเริ่มต้นอย่างน้อยหนึ่งเธรดสำหรับบริการ ฉันกำลังพิจารณาใช้ Asynch API (BeginRecieve และอื่น ๆ ) เนื่องจากฉันไม่ทราบว่ามีลูกค้ากี่รายที่ฉันจะเชื่อมต่อในเวลาใดก็ตาม (อาจเป็นร้อย) แน่นอนฉันไม่ต้องการเริ่มหัวข้อสำหรับแต่ละการเชื่อมต่อ ข้อมูลจะไหลออกไปยังไคลเอนต์จากเซิร์ฟเวอร์ของฉันเป็นหลัก แต่จะมีบางคำสั่งที่ส่งจากลูกค้าในบางโอกาส นี่เป็นแอปพลิเคชันการตรวจสอบเบื้องต้นที่เซิร์ฟเวอร์ของฉันส่งข้อมูลสถานะเป็นระยะให้กับลูกค้า คำแนะนำใด ๆ เกี่ยวกับวิธีที่ดีที่สุดในการปรับขนาดให้ได้มากที่สุด เวิร์กโฟลว์พื้นฐาน ขอบคุณ แก้ไข: เพื่อความชัดเจนฉันกำลังมองหา. based based solutions (C # ถ้าเป็นไปได้ แต่. net ภาษาใด ๆ จะทำงาน) BOUNTY NOTE: เพื่อรับรางวัลโปรดปรานฉันคาดหวังมากกว่าคำตอบง่ายๆ ฉันต้องการตัวอย่างการทำงานของโซลูชันไม่ว่าจะเป็นตัวชี้ไปยังสิ่งที่ฉันสามารถดาวน์โหลดหรือตัวอย่างสั้น …
148 c#  .net  networking  tcp  scalability 


11
ความแตกต่างระหว่าง TCP และ UDP หรือไม่
ความแตกต่างระหว่าง TCP และ UDP คืออะไร ฉันรู้ว่า TCP ถูกใช้ในกรณีของแอพพลิเคชั่นที่ไม่เกี่ยวกับเวลาและ UDP ใช้สำหรับเกมหรือแอพพลิเคชั่นที่ต้องการการส่งข้อมูลที่รวดเร็ว ฉันรู้ว่า TCP ใช้สำหรับ HTTP, HTTPs, FTP, SMTP และ Telnet ฉันรู้ว่า UDP นั้นใช้สำหรับ DNS และ DHCP แต่ทำไม คุณลักษณะใดของ TCP และ UDP ที่ทำให้มีประโยชน์สำหรับกรณีการใช้งานตามลำดับ?

6
พอร์ตทำงานกับ IPv6 ได้อย่างไร
สัญกรณ์รูปสี่เหลี่ยม IPv4 ประจุดแยกที่อยู่จากพอร์ตกับโคลอนดังตัวอย่างของเว็บเซิร์ฟเวอร์บนอินเตอร์เฟสวนย้อนกลับ: 127.0.0.1:80 แต่ด้วยสัญกรณ์ IPv6 ที่อยู่นั้นสามารถมีโคลอนได้ ตัวอย่างเช่นนี่เป็นรูปแบบย่อของที่อยู่ลูปแบ็ค: ::1 พอร์ต (หรือหน้าที่เทียบเท่า) แสดงในการแสดงข้อความของจุดสิ้นสุดที่อยู่ IPv6 / พอร์ตอย่างไร
143 tcp  udp  ipv6  ports 

7
NGINX เพื่อย้อนกลับเว็บซ็อกเก็ตพร็อกซีและเปิดใช้งาน SSL (wss: //)?
ฉันหลงทางและยังใหม่กับการสร้าง NGINX ด้วยตัวเอง แต่ฉันต้องการเปิดใช้งานเว็บซ็อกเก็ตที่ปลอดภัยโดยไม่ต้องมีเลเยอร์เพิ่มเติม ฉันไม่ต้องการเปิดใช้ SSL บนเซิร์ฟเวอร์ websocket แต่ฉันต้องการใช้ NGINX เพื่อเพิ่มเลเยอร์ SSL ให้กับสิ่งทั้งหมด ทุกหน้าเว็บบอกว่าทำไม่ได้ แต่รู้ว่าทำได้! ต้องขอบคุณใครก็ตามที่ (ตัวเอง) สามารถแสดงวิธี!
141 ssl  tcp  proxy  nginx  mod-proxy 

2
ConnectionTimeout กับ SocketTimeout
ฉันมีปัญหากับไลบรารีที่ฉันใช้ อาจเป็นห้องสมุดหรืออาจเป็นฉันใช้ผิด! โดยทั่วไปเมื่อฉันทำสิ่งนี้ (หมดเวลาเป็นมิลลิวินาที) _ignitedHttp.setConnectionTimeout(1); // v short _ignitedHttp.setSocketTimeout(60000); // 60 seconds ไม่มีการสร้างข้อยกเว้นการหมดเวลาและทำงานได้ดีอย่างไรก็ตามเมื่อฉันทำสิ่งต่อไปนี้ _ignitedHttp.setConnectionTimeout(60000); // 60 seconds _ignitedHttp.setSocketTimeout(1); // v short ฉันได้รับข้อยกเว้นซ็อกเก็ต ดังนั้นคำถามของฉันคือทำไมฉันไม่สามารถจำลองข้อยกเว้นการเชื่อมต่อได้? ฉันเข้าใจความแตกต่างระหว่างซ็อกเก็ตและการหมดเวลาการเชื่อมต่อหรือไม่? ห้องสมุดอยู่ที่นี่ (ยังไม่เปิดตัวอย่างเป็นทางการ)

4
ฟังก์ชั่น socket API accept () ทำงานอย่างไร?
ซ็อกเก็ต API เป็นมาตรฐานโดยพฤตินัยสำหรับการสื่อสาร TCP / IP และ UDP / IP (นั่นคือรหัสเครือข่ายที่เรารู้จัก) อย่างไรก็ตามหนึ่งในฟังก์ชั่นหลักของมันaccept()นั้นมีมนต์ขลังเล็กน้อย หากต้องการยืมคำจำกัดความกึ่งทางการ: ยอมรับ () ถูกใช้ในฝั่งเซิร์ฟเวอร์ ยอมรับความพยายามที่เข้ามาเพื่อสร้างการเชื่อมต่อ TCP ใหม่จากไคลเอนต์ระยะไกลและสร้างซ็อกเก็ตใหม่ที่เชื่อมโยงกับคู่ที่อยู่ซ็อกเก็ตของการเชื่อมต่อนี้ กล่าวอีกนัยหนึ่งคือacceptส่งคืนซ็อกเก็ตใหม่ซึ่งเซิร์ฟเวอร์สามารถสื่อสารกับไคลเอ็นต์ที่เชื่อมต่อใหม่ได้ ซ็อกเก็ตเก่า (ซึ่งacceptถูกเรียกว่า) ยังคงเปิดอยู่บนพอร์ตเดียวกันเพื่อรับฟังการเชื่อมต่อใหม่ วิธีการacceptทำงานหรือไม่ มีการใช้งานอย่างไร? มีความสับสนมากมายในหัวข้อนี้ หลายคนอ้างว่ายอมรับเปิดพอร์ตใหม่และคุณสื่อสารกับลูกค้าผ่านพอร์ตนั้น แต่เห็นได้ชัดว่าสิ่งนี้ไม่เป็นความจริงเนื่องจากไม่มีการเปิดพอร์ตใหม่ คุณสามารถสื่อสารผ่านพอร์ตเดียวกันกับไคลเอนต์ต่าง ๆ ได้จริง แต่อย่างไร? เมื่อหลายเธรดเรียกrecvใช้พอร์ตเดียวกันข้อมูลจะรู้ได้อย่างไรว่าจะไปที่ใด ฉันเดาว่ามันเป็นสิ่งที่อยู่ตามบรรทัดของที่อยู่ของลูกค้าที่เชื่อมโยงกับตัวอธิบายซ็อกเก็ตและเมื่อใดก็ตามที่ข้อมูลเข้ามาข้อมูลrecvจะถูกส่งไปยังซ็อกเก็ตที่ถูกต้อง แต่ฉันไม่แน่ใจ เป็นการดีที่จะได้รับคำอธิบายอย่างละเอียดเกี่ยวกับการทำงานภายในของกลไกนี้
126 networking  sockets  tcp 

5
TCP: สองซ็อกเก็ตที่แตกต่างกันสามารถแบ่งปันพอร์ตได้หรือไม่?
นี่อาจเป็นคำถามพื้นฐาน แต่มันทำให้ฉันสับสน สองซ็อกเก็ตที่เชื่อมต่อที่แตกต่างกันสามารถใช้พอร์ตร่วมกันได้หรือไม่? ฉันกำลังเขียนแอปพลิเคชันเซิร์ฟเวอร์ที่น่าจะรองรับการเชื่อมต่อพร้อมกันได้มากกว่า 100k และเรารู้ว่าจำนวนพอร์ตที่มีอยู่ในระบบอยู่ที่ประมาณ 60k (16 บิต) ซ็อกเก็ตที่เชื่อมต่อถูกกำหนดให้กับพอร์ตใหม่ (เฉพาะ) ดังนั้นจึงหมายความว่าจำนวนการเชื่อมต่อพร้อมกันจะถูก จำกัด โดยจำนวนพอร์ตเว้นแต่ซ็อกเก็ตหลายตัวสามารถใช้พอร์ตเดียวกันร่วมกันได้ ดังนั้นคำถาม ขอบคุณสำหรับความช่วยเหลือล่วงหน้า!

8
อะไรเป็นสาเหตุให้ส่งแฟล็ก TCP / IP reset (RST)
ฉันกำลังพยายามหาคำตอบว่าทำไมการเชื่อมต่อ TCP / IP ของแอปของฉันจึงมีอาการสะอึกทุกๆ 10 นาที (แน่นอนภายใน 1-2 วินาที) ฉันใช้งาน Wireshark และพบว่าหลังจากไม่มีการใช้งาน 10 นาทีปลายอีกด้านหนึ่งกำลังส่งแพ็กเก็ตพร้อมชุดค่าสถานะรีเซ็ต (RST) การค้นหาของ Google บอกฉันว่า "ค่าสถานะ RESET หมายความว่าผู้รับเริ่มสับสนและต้องการยกเลิกการเชื่อมต่อ" แต่นั่นเป็นเพียงรายละเอียดเล็กน้อยที่ฉันต้องการ อะไรคือสาเหตุนี้ และเป็นไปได้ไหมที่เราเตอร์บางตัวในระหว่างทางจะรับผิดชอบหรือสิ่งนี้จะมาจากจุดสิ้นสุดอื่นเสมอ? แก้ไข:มีเราเตอร์ (โดยเฉพาะ Linksys WRT-54G) นั่งอยู่ระหว่างคอมพิวเตอร์ของฉันและปลายทางอื่น ๆ - มีสิ่งใดที่ฉันควรค้นหาในการตั้งค่าเราเตอร์หรือไม่
123 networking  tcp 

19
ใน C # จะตรวจสอบได้อย่างไรว่ามีพอร์ต TCP หรือไม่?
ใน C # เพื่อใช้ TcpClient หรือโดยทั่วไปเพื่อเชื่อมต่อกับซ็อกเก็ตฉันจะตรวจสอบก่อนว่าพอร์ตบางพอร์ตว่างบนเครื่องของฉันได้อย่างไร? ข้อมูลเพิ่มเติม: นี่คือรหัสที่ฉันใช้: TcpClient c; //I want to check here if port is free. c = new TcpClient(ip, port);
120 c#  .net  tcp  tcpclient 

5
Telnet ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันกำลังพยายามส่งต่อพอร์ตเพื่อเชื่อมต่อสองอีมูเลเตอร์โดยใช้โปรโตคอล TCP บน Windows แม้ว่าฉันจะเปิดใช้งานโปรแกรมไคลเอนต์ TCP จากแผงควบคุม แต่คำสั่ง "telnet" ไม่รู้จักในพรอมต์คำสั่ง ใครช่วยฉันแก้ไขปัญหานี้ได้บ้าง
120 tcp  windows-7 

4
การเชื่อมต่อ TCP loopback เทียบกับประสิทธิภาพของ Unix Domain Socket
ทำงานบนแอปพลิเคชันที่ใช้ Android และ iOS ซึ่งต้องการการสื่อสารกับเซิร์ฟเวอร์ที่ทำงานในอุปกรณ์เดียวกัน ปัจจุบันใช้การเชื่อมต่อ TCP loopback สำหรับการสื่อสารกับแอพและเซิร์ฟเวอร์ (แอพที่เขียนในเลเยอร์ผู้ใช้เซิร์ฟเวอร์ที่เขียนด้วย C ++ โดยใช้ Android NDK) ฉันสงสัยว่าการแทนที่การสื่อสารระหว่างกันด้วยซ็อกเก็ต Unix Domain จะช่วยเพิ่มประสิทธิภาพได้หรือไม่? หรือโดยทั่วไปมีหลักฐาน / ทฤษฎีใดที่พิสูจน์ได้ว่าซ็อกเก็ต Unix Domain จะให้ประสิทธิภาพที่ดีกว่าการเชื่อมต่อ TCP loopback หรือไม่?

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