Tôi đã học được ví dụ về cách sử dụng ổ cắm. Trong ví dụ này, một client gửi yêu cầu tới server để mở socket và sau đó server (nghe một cổng cụ thể) mở socket và mọi thứ đều ổn, socket được "mở" từ cả hai phía (client và server).Tôi có thể đóng và mở lại ổ cắm không?
Nhưng tôi vẫn chưa hiểu rõ mức độ linh hoạt của nội dung này. Ví dụ, nó có thể cho khách hàng để đóng một mở (từ cả hai đầu) ổ cắm và mở lại nó một lần nữa (trong điều kiện máy chủ giữ ổ cắm mở).
Máy chủ có thể "biết" rằng một ổ cắm đã được đóng ở phía máy khách không? Có thể cho khách hàng biết rằng một ổ cắm đã được đóng ở phía máy chủ?
thêm: điều quan trọng
Một hơn đối với tôi. Điều gì sẽ xảy ra nếu một ứng dụng (không có máy chủ hoặc máy khách) bị treo, bất thường bị chấm dứt, bị giết? Nó sẽ đóng tất cả các ổ cắm được mở ở phía bên của ứng dụng?
THÊM 2:
gì nếu một ứng dụng trên một mặt của ổ cắm được tắt (giết, đóng cửa, chấm dứt) và sau đó nó được bật lên lần nữa (trên cùng địa chỉ IP và cổng tương tự). Chúng ta có nên tạo một ổ cắm mới giữa hai ứng dụng hoặc chúng ta có thể sử dụng socket cũ (được tạo trước khi xảy ra sự cố).
Tôi không hiểu quy trình. Ví dụ, client đóng socket và server không làm điều đó. Khách hàng cố gắng mở một ổ cắm mới (từ cùng một cổng và địa chỉ IP) nhưng máy chủ nói: xin lỗi là không thể vì ổ cắm này đã tồn tại! Và sau đó khách hàng nói: tốt nó tồn tại cho bạn, nhưng tôi đóng nó và tôi không thể mở lại nó một lần nữa! – Roman
Máy chủ sẽ xử lý ổ cắm trong các chủ đề khác nhau. Nó không phải là một vấn đề để mở (ví dụ: chấp nhận) ổ cắm trên cùng một cổng. – Roman
ah, thật là một mớ hỗn độn xấu xí với biệt hiệu. – Roman