建立简单的客户端程序:
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);}
}
}
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);}
}
}
要考试了,老师要交,自己的能力最多能看懂,要自己写一个不现实啊,
荒废了2年时间,现在开始补。小弟我这学期要考10门,用c写写小东西还可以,java作业实在是不会-_-! 哪位大哥有的话,耽误你一点点时间,发到这个邮箱去好不?[email protected]
ps 稍微实用一点的程序,象一个简单的ftp,点对点聊天诸如此类的。
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();
}}
网上自己down算了
没时间写了,明天就要交了。