클라이언트측 프로그래밍
클라이언트 측과 관련된 단계는 다음과 같습니다.- 소켓 연결 열기
- 연결을 닫습니다.
- 소켓 연결을 설정합니다.
- 연결을 닫습니다.
Syntax: public DataInputStream(InputStream in) Parameters: in - The underlying InputStream. Creates a DataInputStream that uses the specified underlying InputStream.
Syntax: public DataOutputStream(OutputStream out) Parameters: out - The underlying OutputStream. Creates a DataOutputStream that uses the specified underlying OutputStream.입력 및 출력 스트림을 생성한 후 생성된 스트림 메서드의 readUTF 및 writeUTF를 사용하여 각각 메시지를 수신하고 보냅니다.
Reads the string encoded using UTF8 encoding. Throws: IOException - the stream has been closed and the contained input stream does not support reading after close or another I/O error occurs
Writes the string encoded using UTF8 encoding. Throws: IOException - the stream has been closed and the contained input stream does not support reading after close or another I/O error occurs
클라이언트 측 구현
Java// Java program to illustrate Client Side Programming // for Simple Calculator using TCP import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Calc_Client { public static void main(String[] args) throws IOException { InetAddress ip = InetAddress.getLocalHost(); int port = 4444; Scanner sc = new Scanner(System.in); // Step 1: Open the socket connection. Socket s = new Socket(ip port); // Step 2: Communication-get the input and output stream DataInputStream dis = new DataInputStream(s.getInputStream()); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); while (true) { // Enter the equation in the form- // 'operand1 operation operand2' System.out.print('Enter the equation in the form: '); System.out.println(''operand operator operand''); String inp = sc.nextLine(); if (inp.equals('bye')) break; // send the equation to server dos.writeUTF(inp); // wait till request is processed and sent back to client String ans = dis.readUTF(); System.out.println('Answer=' + ans); } } }
산출 Enter the equation in the form: 'operand operator operand' 5 * 6 Answer=30 Enter the equation in the form: 'operand operator operand' 5 + 6 Answer=11 Enter the equation in the form: 'operand operator operand' 9 / 3 Answer=3
서버측 프로그래밍
서버 측과 관련된 단계는 다음과 같습니다.
서버측 구현
루프 유형에 대한 JavaJava
// Java program to illustrate Server Side Programming // for Simple Calculator using TCP import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.StringTokenizer; public class Calc_Server { public static void main(String args[]) throws IOException { // Step 1: Establish the socket connection. ServerSocket ss = new ServerSocket(4444); Socket s = ss.accept(); // Step 2: Processing the request. DataInputStream dis = new DataInputStream(s.getInputStream()); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); while (true) { // wait for input String input = dis.readUTF(); if(input.equals('bye')) break; System.out.println('Equation received:-' + input); int result; // Use StringTokenizer to break the equation into operand and // operation StringTokenizer st = new StringTokenizer(input); int oprnd1 = Integer.parseInt(st.nextToken()); String operation = st.nextToken(); int oprnd2 = Integer.parseInt(st.nextToken()); // perform the required operation. if (operation.equals('+')) { result = oprnd1 + oprnd2; } else if (operation.equals('-')) { result = oprnd1 - oprnd2; } else if (operation.equals('*')) { result = oprnd1 * oprnd2; } else { result = oprnd1 / oprnd2; } System.out.println('Sending the result...'); // send the result back to the client. dos.writeUTF(Integer.toString(result)); } } }
산출: Equation received:-5 * 6 Sending the result... Equation received:-5 + 6 Sending the result... Equation received:-9 / 3 Sending the result...Note: In order to test the above programs on the system please make sure that you run the server program first and then the client one. Make sure you are in the client console and from there enter the equation in the format-'operand1 operator operand2' and press Enter. Answer to the requested equation will be shown in the client console only. Finally to terminate the communication type 'bye' (without quotes) and hit enter. 관련 기사: Java에서 UDP를 사용하는 간단한 계산기 퀴즈 만들기