자바 소개 및 자바 이해 (2, 7)
6048 단어 자바응용 서버socket네트워크 응용네트워크 프로 토 콜
TCP SocketTCP 는 Tranfer Control Protocol 의 약칭 으로 연결 을 위 한 신뢰 할 수 있 는 전송 을 보장 하 는 프로 토 콜 입 니 다. TCP 프로 토 콜 을 통 해 전송 되 는 것 은 순서 적 으로 오류 가 없 는 데이터 흐름 입 니 다. 전송 자 와 수신 자의 쌍 을 이 루 는 두 socket 사이 에 TCP 프로 토 콜 을 바탕 으로 통신 할 수 있 도록 연결 을 만들어 야 합 니 다. socket (보통 server socket)연결 을 기다 리 는 동안 다른 socket 은 연결 을 요구 할 수 있 습 니 다. 이 두 socket 이 연결 되면 양 방향 데이터 전송 을 할 수 있 습 니 다. 쌍방 이 전송 하거나 수신 할 수 있 습 니 다. 1) 서버 는 포트 번 호 를 할당 하고 서버 는 accept () 를 사용 합 니 다.방법 은 클 라 이언 트 의 신 호 를 기다 리 고 있 습 니 다. 신 호 는 socket 연결 을 열 때 까지 socket 에서 OutputStream 과 InputStream 을 가 져 옵 니 다.TCP 서버 엔 드 프로그램 을 만 드 는 절차: 1). ServerSocket 2 를 만 듭 니 다). ServerSocket 에서 클 라 이언 트 연결 요청 을 받 습 니 다 3). 서비스 스 레 드 를 만 들 고 새로운 연결 을 처리 합 니 다 4). 서비스 스 레 드 에서 socket 에서 I / O 흐름 5 를 얻 습 니 다. I / O 흐름 에 대해 읽 기와 쓰기 작업 을 하고 클 라 이언 트 와 의 상호작용 을 완료 합 니 다 6). I / O 흐름 7 을 닫 습 니 다. Socket ServerSocket server = new ServerSocket (post) 을 닫 습 니 다.Socket connection = server. accept (); Object InputStream put = new Object InputStream (connection. getInputStream ()); Object OutputStream put = new Object OutputStream (connection. getOutputStream ()); 입 출력 흐름 처리; 흐름 과 socket 을 닫 습 니 다. 전형 적 인 서버 엔 드 입 니 다.
public class Server1 {
public static void main(String[] args) throws Exception {
ServerSocket ss=new ServerSocket(9000);
while(true){
Socket s=ss.accept();// Socket 。
Thread t=new Thread1(s);// Socket。
t.start();
}
}
}
class Thread1 extends Thread{
Socket s;
public Thread1(Socket s){
this.s=s;
}
public void run(){
try {
OutputStream o=s.getOutputStream();
PrintWriter out=new PrintWriter(o);
out.println("Hello Client");
out.flush();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TCP 클 라 이언 트 를 만 들 려 면 TCP 클 라 이언 트 프로그램 을 만 드 는 절차: 1). Socket 2 를 만 듭 니 다. I / O 흐름 3) 을 가 져 옵 니 다. I / O 흐름 에 대한 읽 기와 쓰기 동작 4). I / O 흐름 5 를 닫 습 니 다. Socket Socket connection = new Socket (127.0.0.1, 7777) 을 닫 습 니 다. Object InputStream input = new Object InputStream input = new Object InputStream Stream (connection. getInputStream (), Object OutputStream utput = new Object OutputStream(connection. getOutputStream (); 입력 과 출력 흐름 처리; 흐름 과 socket 닫 기. 예: 서버 쪽:
import java.net.*;
import java.io.*;
public class Server1 {
public static void main(String[] args) throws Exception {
ServerSocket ss=new ServerSocket(9000);
while(true){
Socket s=ss.accept();
Thread t=new Thread1(s); // Socket
t.start();
}
}
}
class Thread1 extends Thread{
Socket s;
public Thread1(Socket s){
this.s=s;
}
public void run(){
try {
OutputStream o=s.getOutputStream();
PrintWriter out=new PrintWriter(o);
out.println("Hello Client");
out.flush();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
클 라 이언 트:
import java.net.*;
import java.io.*;
public class Client1 {
public static void main(String[] args) throws Exception{
Socket s=new Socket("127.0.0.1",9000);
InputStream i=s.getInputStream();
InputStreamReader ir=new InputStreamReader(i);
BufferedReader in=new BufferedReader(ir);
String str=in.readLine();
System.out.println(str);
s.close();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.