建立简单的客户端程序:
import java.io.*;
import java.net.*;
public class Client
{ public static void main(String args[])
  { String s=null;Socket mysocket;
    DataInputStream in=null;
    DataOutputStream out=null;
    try{
     mysocket=new Socket("localhost",4331);
     in=new DataInputStream(mysocket.getInputStream());
     out=new DataOutputStream(mysocket.getOutputStream()); 
     out.writeUTF("你好!");//通过 out向“线路”写入信息。
      while(true)
      { s=in.readUTF();//通过使用in读取服务器放入“线路”里的信息
         if (s!=null)  break;
      } 
     mysocket.close();
    }
    catch(IOException e){System.out.println("无法连接");}     
    System.out.println(s); 
   } 
}
从套接字连接中读取数据与从文件中读取数据有着很大的不同,尽管二者都是输入流。从文件中读取数据时,所有的数据都已经在文件中了。而使用套接字连接时,可能在另一端数据发送出来之前,就已经开始试着读取了,所以为了避免堵塞,在上述例子中我们使用了循环:
while(true)
{ s=in.readUTF();//通过使用in读取服务器放入“线路”里的信息
   if (s!=null)  break;

来读取数据。
服务器端程序:
import java.io.*;import java.net.*;
public class Server
{ public static void main(String args[])
  {  ServerSocket server=null;
     Socket you=null;String s=null;
     DataOutputStream out=null;DataInputStream  in=null;
     try{ server=new ServerSocket(4331);}
      catch(IOException e1){System.out.println("ERRO:"+e1);} 
     try{  you=server.accept();
           in=new DataInputStream(you.getInputStream());
           out=new DataOutputStream(you.getOutputStream());
         while(true)
         {s=in.readUTF();// 通过使用in读取客户放入“线路”里的信息
            if (s!=null) break; 
         }
        out.writeUTF("你好:我是服务器");//通过 out向“线路”写入信息
        you.close(); 
        } 
      catch (IOException e)
      {System.out.println("ERRO:"+e);}
   }
}

解决方案 »

  1.   

    谢谢兄弟们捧场啊!!
       要考试了,老师要交,自己的能力最多能看懂,要自己写一个不现实啊,
    荒废了2年时间,现在开始补。小弟我这学期要考10门,用c写写小东西还可以,java作业实在是不会-_-! 哪位大哥有的话,耽误你一点点时间,发到这个邮箱去好不?[email protected]
      ps  稍微实用一点的程序,象一个简单的ftp,点对点聊天诸如此类的。
      

  2.   

    呵呵,干吗去了?自己去找!mycodes.net
      

  3.   

    Applet用Http隧道技术和Servlet通讯 (源码)   
            Applet source  
    import java.io.*;
    import java.applet.Applet;
    import java.awt.*;public class TestDataStreamApplet extends Applet
    {
        String response;
        public  void  init(){     
          
          try{
             java.net.URL url = new java.net.URL(getDocumentBase(),"servlet/DataStreamEcho");         
             java.net.URLConnection con = url.openConnection(); 
             con.setUseCaches(true);
             con.setDoOutput(true);
             con.setDoInput(true);
             ByteArrayOutputStream byteout = new ByteArrayOutputStream();
             DataOutputStream out = new DataOutputStream(byteout);
             out.writeUTF("hello world!");
             out.flush();
             byte buf[] =  byteout.toByteArray();         
             con.setRequestProperty("Content-type","application/octest-stream");
             con.setRequestProperty("Content-length",""+buf.length);
             DataOutputStream dataout = new DataOutputStream(con.getOutputStream());
             dataout.write(buf);
             dataout.flush();
     dataout.close();         DataInputStream in = new DataInputStream(con.getInputStream());
             response = in.readUTF();
             System.out.println("read from server :" + response);
             in.close();  
          }
          catch(Exception e){
             e.printStackTrace();
          }
          
       }   public void paint(Graphics g){
          g.drawString("read from server :" + response,10,20);
           
       }
    }
    Servlet source import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;public class DataStreamEcho extends HttpServlet{
           public void service(HttpServletRequest req,HttpServletResponse resp)
               throws ServletException ,java.io.IOException
           {
               DataInputStream in = new DataInputStream(req.getInputStream());
               resp.setContentType("application/octest-stream");
               ByteArrayOutputStream byteout = new ByteArrayOutputStream();
               DataOutputStream out = new DataOutputStream(byteout);
               String response = in.readUTF();
               out.writeUTF(response);
               out.flush();
               byte buf[]= byteout.toByteArray();
               resp.setContentLength(buf.length);
               ServletOutputStream servletout = resp.getOutputStream();
               servletout.write(buf);
               servletout.close();  
           }}
      

  4.   

    知道会被鄙视,可是没想到被鄙视成这样-_-!!
       网上自己down算了
    没时间写了,明天就要交了。