天天写BS的东西,突然感到自己基础功底差了点,看来的恶补一番。
单线程的Socket
java 代码
- package com.wangtong.network;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class ServerSocket {
- public static void main(String[] args) {
- try {
- createServerSocket();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- private static void createServerSocket() throws IOException {
- ServerSocket serverSocket = new ServerSocket( 8189 );
- Socket socket = serverSocket.accept(); // wait for client connection
- while ( true ) {
- BufferedReader in = new BufferedReader( new InputStreamReader(socket
- .getInputStream()));
- PrintWriter out = new PrintWriter(socket.getOutputStream());
- while ( true ) {
- String str = in.readLine();
- System.out.println( "server:" + str);
- out.println( "client receive" + str);
- out.flush();
- if (str.equals( "exit" ))
- break ;
- }
- socket.close();
- }
- }
- }
java 代码
- package com.wangtong.network;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.util.Scanner;
- public class ClientSocket {
- private static final String URL = "localhost" ;
- private static final int PORT = 8189 ;
- /**
- * create client socket
- *
- * @throws IOException
- * @throws UnknownHostException
- *
- */
- private static void createClientSocket() throws UnknownHostException,
- IOException {
- Socket clientSocket = new Socket(URL, PORT);
- BufferedReader in = new BufferedReader( new InputStreamReader(
- clientSocket.getInputStream()));
- PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
- BufferedReader wt = new BufferedReader( new InputStreamReader(System.in));
- while ( true ) {
- String str = wt.readLine();
- out.println( "client send:" + str);
- out.flush();
- if (str.equals( "end" )) {
- break ;
- }
- System.out.println(in.readLine());
- }
- clientSocket.close();
- }
- public static void main(String[] args) {
- try {
- createClientSocket();
- } catch (UnknownHostException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }