(eng)
Normally, a server runs on a specific computer and has
a socket that is bound to a specific port number. The server just waits,
listening to the socket for a client to make a connection request.
On the client-side: The client knows the hostname of
the machine on which the server is running and the port number on which the
server is listening. To make a connection request, the client tries to
rendezvous with the server on the server's machine and port. The client also
needs to identify itself to the server so it binds to a local port number that
it will use during this connection. This is usually assigned by the system.
If everything goes well, the server accepts the
connection. Upon acceptance, the server gets a new socket bound to the same
local port and also has its remote endpoint set to the address and port of the
client. It needs a new socket so that it can continue to listen to the original
socket for connection requests while tending to the needs of the connected
client.
(kor)
접속이 성공적이면 'Socket'이 이때 생성되며, 클라이언트는 소캣을 이용해 서버와 커뮤니케이션 한다.
소켓의 정의 : 네트워크에서 흐르는 두개의 프로그램 사이에 존재하는 양방향 커뮤니케이션
링크의 한쪽에 붙어서, 다른 한쪽의 포트넘버+IP주소를 찾아주고
접속을 유지시켜준다. 덕분에 TCP 레이어는 데이터가 흘러가야
하는 목적지 프로그램을 identify 찾아낼 수 있다.
(extra -
eng)
An endpoint is a combination of an IP address and a
port number. Every TCP connection can be uniquely identified by its two
endpoints. That way you can have multiple connections between your host and the
server.
The java.net package in the Java platform provides a
class, Socket, that implements one side of a two-way connection between your
Java program and another program on the network. The Socket class sits on top
of a platform-dependent implementation, hiding the details of any particular
system from your Java program. By using the java.net.Socket class instead of
relying on native code, your Java programs can communicate over the network in
a platform-independent fashion.
Additionally, java.net includes the ServerSocket
class, which implements a socket that servers can use to listen for and accept
connections to clients. This lesson shows you how to use the Socket and
ServerSocket classes.
If you are trying to connect to the Web, the URL class
and related classes (URLConnection, URLEncoder) are probably more appropriate
than the socket classes. In fact, URLs are a relatively high-level connection
to the Web and use sockets as part of the underlying implementation. SeeWorking
with URLs for information about connecting to the Web via URLs.
EmoticonEmoticon