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.

1 Like

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… :’( )

2 Likes

Đâ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 ^^)

5 Likes

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

1 Like

thank mấy bác. khệnh nhất lớp oy. về sớm nhất hội.:sweat_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?