2017-12-27 128 views

Trả lời

140

Điều này là do những gì xuất hiện sau dấu hai chấm có thể là số cổng hoặc tên dịch vụ.

Sau đây là một ví dụ hợp lệ nơi tên dịch vụ được sử dụng thay vì một số cổng:

listener, err := net.Listen("tcp", "localhost:https") // port 443 
// ... 

Việc lập bản đồ cổng cho một dịch vụ cụ thể được xem xét bằng cách sử dụng net.LookupPort. Trên các hệ thống Unix, tệp /etc/services có nguồn gốc cho các ánh xạ.

+1

Tôi luôn bị hấp dẫn bởi kiểu phân loại kiểu mở/đóng. Tôi muốn thấy thứ gì đó giống như một loại _mixed_ trong đó có một số giá trị mặc định (ở đây ví dụ: các cổng và dịch vụ nổi tiếng) nhưng cũng cho phép mở rộng chúng, cuối cùng là hỗ trợ tự động hoàn thành. Trong kiến ​​thức làm việc hạn chế của tôi TypeScripts ADTs đến gần nhất, có thể Swifts ADTs có thể thể hiện điều này cũng trực tiếp. –

1

Đối với một số giá trị mặc định là 0: nếu một hàm

func (u * URL) Port() string 

số lợi nhuận thay vì chích cảng sẽ là 0

Port 0 là một cổng dành riêng trong mạng TCP/IP, có nghĩa nó không nên được sử dụng trong các thông điệp TCP hoặc UDP. Tuy nhiên, cổng 0 mang ý nghĩa đặc biệt trong lập trình mạng, đặc biệt là lập trình socket Unix: để yêu cầu các cổng động, được cấp phát theo hệ thống.

cần lập trình ở một số chức năng

Các vấn đề liên quan