30/09/2018, 20:00
Socket trong java
cho em hỏi về lệnh tại socket trong java:
Socket socket= new Socket(localhost,9999);
cho mình hỏi localhost
là gì vậy, thay giá trị như nào mà nó vẫn chạy mà.
p/s:em đang trong giờ thực hành.
Bài liên quan
localhost được ngầm định là giá trị IP 127.0.0.1. Sự ngầm định này là do người ta làm nhiều xong bỗng nhiên ưng con số này rồi dần dần dùng. (Đừng hỏi mình tại sao lại là số này… :’( )
Đây là lệnh khai báo Client kết nối vào 1 Socket Server binding ở cổng 9999 thôi. Socket Server được deploy trên máy của mình (localhost = 127.0.0.1). Nó chạy bởi vì đã có Socket Server chạy rồi (bạn thử thay cổng # xem, sẽ throw re exception ngay).
Địa chỉ 127.0.0.1 thuộc dải 127.0.0.0/8 (127.0.0.1 tới 127.255.255.254), hay còn được gọi là loop-back network interface, nghĩa là packet send tới dải IP này sẽ quay ngược (loop-back) lại mà không đi qua physical network interface (hay còn gọi là 1 end-point connection, tự giao tiếp).
Còn tại sao họ chọn số này? Họ reserve byte cao nhất (127) để tránh bị trùng với các IP thực khác (khi đó không ai nghĩ IPv4 lại nhanh hết như hiện nay) chứ không phải thói quen đâu nhé. Thường thì khi reserve, bạn cũng thường làm vậy, một là số cao nhất, hai là số bé nhất (ví dụ 1.0.0.1) chứ không ai chọn số ở giữa như 69.69.69.69 (vì thấy nó đẹp ^^)
local host là host nội bộ, đây là con trỏ trỏ đến địa chỉ ip mặc định của máy tính (127.0.0.1) bất kể có kết nối internet hay không. 8888 là cổng giao tiếp đến local host nhé
Em qùy luôn ^^ @Phan_Hoang
thank mấy bác. khệnh nhất lớp oy. về sớm nhất hội.