Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Исходный текст программы SocketClient.java

Оглавление

Назад

// ==========================================
// SocketClient.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web:    http://www.glasnet.ru/~frolov 
// ==========================================
import java.net.*;
import java.util.*;
import java.io.*;

public class SocketClient
{
  public static void main(String args[])
  {
    System.out.println(
      "* Socket Client *");
      
    Socket s = null;
    
    try
    {
      s = new Socket("localhost", 9999);
    }  
    catch(Exception ex)
    {
      System.out.println(ex.toString());
      System.exit(0);
    }  
     
    int nPort = s.getLocalPort();
    System.out.println("Local Port: " + nPort);
      
    InputStream is;
    OutputStream os;
    
    try
    {
      is = s.getInputStream();
      os = s.getOutputStream();
    
      String szStr;
      while(true)
      {
        szStr = getKbdString();
	
        sendString(os, szStr);
	os.flush();
	
	if(szStr.equals("quit"))
	  break;    
	  
	szStr = recvString(is);
	
	System.out.println(szStr);
      }
      
      is.close();
      os.close();
      s.close();
    }  
    catch(Exception ex)
    {
      System.out.println(ex.toString());
    }  
  }  

  // ============================================
  // sendString
  // ============================================
  static void sendString(OutputStream os,
     String s)
    throws IOException
  {
    for(int i = 0; i < s.length(); i++)
    {
      os.write((byte)s.charAt(i));
    }
    os.write('\n');
    os.flush();
  }

  // ============================================
  // recvString
  // ============================================
  static String recvString(InputStream is)
    throws IOException
  {
    String szBuf = "";
    int ch = is.read();

    while (ch >= 0 && ch != '\n')
    {
      szBuf += (char)ch;
      ch = is.read();
    }
    return szBuf;
  }
	  
  // ============================================
  // getKbdString
  // ============================================
  static public String getKbdString()
  {
    byte bKbd[] = new byte[256];
    int iCnt = 0;
    String szStr = "";
    
    try
    {
      iCnt = System.in.read(bKbd);
    }
    catch(Exception ex)
    {
      System.out.println(ex.toString()); 
    }
      
    szStr = new String(bKbd, 0, iCnt);
    szStr = szStr.trim();
    return szStr;
  }
}

[Назад]