socket과 서버socket의 입력 출력 흐름
socket mysocket=new socket("127.0.0.1",30000);포트 번호 30000으로 본 컴퓨터에 연결합니다. 물론 여기는 io이상이 발생할 수 있습니다.
플러그인 mysocket이 구축된 후, 유사한 통신 회선이 이미 구축되었다.
get Input Stream () 방법으로 입력 흐름을 얻을 수 있습니다. 이 입력 흐름으로 서버가'라인'에 넣은 정보를 읽을 수 있습니다. (단, 자신이'라인'에 넣은 정보는 읽을 수 없습니다. 마치 전화하는 수화기와 같습니다.)물론 이에 대응하는 mysocket은 get Output Stream () 방법으로 출력 흐름을 얻을 수 있다. 즉, 자신의 마이크를 가져와 출력할 정보를'선로'에 넣는다.
실제로 mysocket에서 getInputStream()을 사용하여 얻은 입력 흐름의 정보를 다른 데이터 흐름(예를 들어 DataInputStream)에 넣을 수도 있고, 마찬가지로 DataOutputStream() 흐름을 getOutputStream() 방법으로 대체할 수도 있다
2, ServerSocket 클래스
> 클라이언트가 만든 socket 연결은 호출 서버만 책임지고 서버도 고객을 받아들이기 위한 플러그인 서버socket 대상을 구축해야 한다
ServerSocket server_socket=new ServerSocket(30000);위의 포트 번호와 일치
서버의 ServerSocket 객체 server_cket 구축 후 accept () 방법으로 고객의 플러그인 응답을 수신할 수 있습니다
》Socket sc=server_socket.accept();
이른바'수신'클라이언트의 플러그인 연결은 accept () 방법으로 클라이언트 Socket 대상과 연결된 Socket 대상을 되돌려줍니다. 서버 측의 Socket 대상sc는 getoutputstream () 방법으로 얻은 출력 흐름을 클라이언트 Socket 대상 mysocket으로 getinoutstream () 으로 얻은 입력 흐름을 가리킵니다.
같은sc에서 getinoutstream을 사용하여 얻은 입력 흐름은 mysocket에서 getoutputstream을 사용하여 얻은 출력 흐름을 가리킨다
위의 그림은 일반적인 데이터 흐름만 표시하고 실제 mysocket 사정 연결과 server_socket는 연결을 기다립니다. 연결 과정은 항상 상호적입니다.
>> 플러그인 연결을 사용할 때, 데이터가 끊어지기 전에 다른 쪽에서 읽기 시작할 수 있습니다. 그러면 이 라인을 막을 수 있습니다.
마찬가지로accept () 방법도 라인을 막을 수 있습니다
연결을 사용한 후close () 방법으로 socket을 닫으십시오.
4, 플러그인을 라인에 넣기
스레드가 막히기 쉬우므로 모든 플러그인 연결을 위해 스레드를 만들어야 한다
예를 들어 클라이언트는 소켓 클래스에 매개 변수가 없는 구조 방법을 사용합니다. 소켓 () 은 호출할 소켓 대상을 만듭니다.
public void connect(SocketAddress xxx) throws IOException
SocketAddress 매개 변수에 지정된 주소의 소켓과 연결을 요청합니다.
이 연결 방법을 사용하기 위해 SocketAddress의 하위 클래스인 InetSocketAddress를 사용하여 대상을 만들 수 있습니다. InetSocketAddress의 구조 방법은 다음과 같습니다.
public InetSocketAddress(InetSocketAddress add,int port),
다음은 간단한 인스턴스(불완전):
Socket socket=new Socket();
.
.
.
InetAddress addre=InetAddress.getByName("127.0.0.1");
InetSocketAddress socketAddress=new InetSocketAddress(addre,4331);
socket.connect(socketAddress);
...
...
..
물론 실제적으로 자신이connect 연결 방법을 써서 자신이 필요로 하는 일부 기능(예를 들어 대화상자 추가, 로그인 상자, 검증 등)을 삽입할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.