Java网络编程从入门到精通(13):使用Socket类接收和发送数据
中国IT站 www.chinaitz.com 2009-5-14

  上面代码通过一个指定的端口范围(如1至1000),并且利用多线程将这个端口范围分成不同的段进行扫描,这样可以大大提高扫描的效率。

  可通过如下命令行去运行例程4-2。

  java mysocket.MyConnection1 1000 3000 20

  二、发送和接收数据

  在Socket类中最重要的两个方法就是getInputStream和getOutputStream。这两个方法分别用来得到用于读取和写入数据的InputStream和OutputStream对象。在这里的InputStream读取的是服务器程序向客户端发送过来的数据,而OutputStream是客户端要向服务端程序发送的数据。

  在编写实际的网络客户端程序时,是使用getInputStream,还是使用getOutputStream,以及先使用谁后使用谁由具体的应用决定。如通过连接邮电出版社网站(www.ptpress.com.cn)的80端口(一般为HTTP协议所使用的默认端口),并且发送一个字符串,最后再读取从www.ptpress.com.cn返回的信息。

package mysocket;

import java.net.*;
import java.io.*;

public class MyConnection2
{
    public static void main(String[] args) throws Exception
    {
        Socket socket = new Socket("www.ptpress.com.cn", 80);
        // 向服务端程序发送数据
        OutputStream ops  = socket.getOutputStream();       
        OutputStreamWriter opsw = new OutputStreamWriter(ops);
        BufferedWriter bw = new BufferedWriter(opsw);
       
        bw.write("hello worldrnrn");
        bw.flush();
       
        // 从服务端程序接收数据
        InputStream ips = socket.getInputStream();
        InputStreamReader ipsr = new InputStreamReader(ips);
        BufferedReader br = new BufferedReader(ipsr);
        String s = "";       
        while((s = br.readLine()) != null)
            System.out.println(s);       
        socket.close();
    }
}

共8篇上一页 1 2 3 4 5 6 7 8 下一页
责任编辑:admin本文仅代表作者观点,与中国IT站立场无关。
收藏】 【推荐】 【投稿】 【 】 【打印】 【关闭
评论加载中...