자바 네트워크 프로 그래 밍:socket 과 sockserver
2710 단어 자바socket네트워크 프로 그래 밍
자바 는 TCP 프로 토 콜 에 두 가지 종 류 를 제공 합 니 다:Socket 과 Socketserver.하나의 Socket 인 스 턴 스 는 TCP 의 한 끝 을 대표 합 니 다.하나의 TCP 연결 은 추상 적 인 양 방향 채널 이 고 양 끝 은 각각 IP 주소 와 포트 번호 로 확 정 됩 니 다.통신 을 시작 하기 전에 TCP 연결 을 만 들 려 면 클 라 이언 트 TCP 에서 서버 TCP 에 연결 요청 을 보 내야 합 니 다.ServerSocket 인 스 턴 스 는 TCP 연결 요청 을 감청 하고 모든 요청 에 새로운 Socket 인 스 턴 스 를 만 듭 니 다.
다음은 간단 한 client/server 의 예 입 니 다.
클 라 이언 트 코드:
//1. Socket , TCP 。
//2. (I/O) , Socker InputStream OutStream
//3. Socket close()
public class TCPECHOClient {
public static void main(String[] args) {
String server = "localhost";
String data = "Echo this!";
byte[] bs = data.getBytes();
try {
// , IP
Socket socket = new Socket(server,80);
System.out.println("Connecting to server……");
//
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
//
out.write(bs);
//
int totalDateRecived = 0;
int bytesRecvd = 0 ;
while(totalDateRecived<bs.length){
totalDateRecived +=bytesRecvd;
if((bytesRecvd=in.read(bs,totalDateRecived,bs.length-totalDateRecived))==-1)
throw new SocketException("connection closed!");
}
System.out.println("received:"+new String(bs));
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
서버:
public class TCPEchoServer {
private static int BUFSiZE = 32;
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(80);
int received = 0;
byte[] receiveBuf = new byte[BUFSiZE];
while(true){
Socket socket = serverSocket.accept();
// InetSocketAddress
SocketAddress clientAddress = socket.getRemoteSocketAddress();
System.out.println("handling client at:"+clientAddress);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
while((received=in.read(receiveBuf))!=-1){
out.write(receiveBuf,0,received);
}
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
출력 결과:
클 라 이언 트:서버 에 연결...수신:에코 이것!
서버:handling client at:/127.0.1:50884
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.