package com.java.suting;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.util.Scanner;
public class SocketTest{
public static void main(String[] args){
try{
//新建一个Socket套接字
Socket s=new Socket("java.sun.com",80);
try{
InputStream inStream=s.getInputStream();
Scanner in =new Scanner(inStream);
while(in.hasNextLine()){
String line=in.nextLine();
System.out.println(line);
}
}
finally
{
//关闭一个套接字
s.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
package com.java.suting;
import java.io.*;
import java.net.*;
import java.util.*;
/*
* This program implements a simple server to port 8189 and echoes back
* all client input.
*/
public class EchoServer{
public static void main(String[] args){
try{
//establish server socket
ServerSocket s=new ServerSocket(8189);
//wait for client connection
Socket incoming=s.accept();
try{
//inStream接收客户端的输入,outStream输出数据到客户端
InputStream inStream=incoming.getInputStream();
OutputStream outStream= incoming.getOutputStream();
Scanner in=new Scanner(inStream);
PrintWriter out=new PrintWriter(outStream,true/*autoflush*/);
out.println("Heloo Enter BYE to exit.");
//echo client input
boolean done=false;
while(!done && in.hasNextLine())
{
String line=in.nextLine();
out.println("Echo:" + line);
if(line.trim().equals("BYE"))
done=true;
}
}
finally
{
incoming.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
package com.java.suting;
import java.io.*;
import java.net.*;
import java.util.*;
/*
* This program implements a multithread server that listens to port
* 8189 and echoes back all client input
*/
public class ThreadEchoServer{
public static void main(String[] args){
try{
int i=1;
ServerSocket s=new ServerSocket(8189);
while(true){
Socket incoming=s.accept();
System.out.println("Spawing "+i);
//创建一个线程
Runnable r=new ThreadedEchoHandler(incoming,i);
Thread t=new Thread(r);
t.start();
i++;
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
/*
* This class handles the client input for one server socket connection
*
*/
class ThreadedEchoHandler implements Runnable{
/*
* Constructor
*/
public ThreadedEchoHandler(Socket i,int c){
incoming =i;
counter=c;
}
@Override
public void run() {
// TODO Auto-generated method stub
try{
try{
//inStream接收客户端的输入,outStream输出数据到客户端
InputStream inStream=incoming.getInputStream();
OutputStream outStream= incoming.getOutputStream();
Scanner in=new Scanner(inStream);
PrintWriter out=new PrintWriter(outStream,true/*autoflush*/);
out.println("Heloo Enter BYE to exit.");
//echo client input
boolean done=false;
while(!done && in.hasNextLine())
{
String line=in.nextLine();
out.println("Echo:" + line);
if(line.trim().equals("BYE"))
done=true;
}
}
finally
{
incoming.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
private Socket incoming;
private int counter;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·