A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙飞 中级黑马   /  2012-7-17 22:11  /  1440 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 feigecal 于 2012-7-18 07:28 编辑

import java.net.*;
import java.io.*;
class KeHuDuan
{
        public static void main(String[] args)
        {
                Socket s=null;
                try
                {
                        s=new Socket("192.168.1.37",10003);//这里是我电脑的IP
                        OutputStream out=s.getOutputStream();
                        out.write("hello".getBytes());
                }
                catch (IOException e)
                {
                        throw new RuntimeException();//为什么运行的时候这里会抛异常啊?
                }
                finally
                {
                        try
                        {
                                if (s!=null)
                                {
                                        s.close();
                                }
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException();
                        }
                }
        }
}

6 个回复

倒序浏览
import java.net.*;
import java.io.*;
class KeHuDuan
{
         public static void main(String[] args)
        {
                 Socket s=null;
                 try
                 {
                         s=new Socket("192.168.1.37",10003); //在这里有两个地方会出现异常,一个是IP的异常,一个是 OutputStream out=s.getOutputStream()会抛出异常
                         OutputStream out=s.getOutputStream();
                         out.write("hello".getBytes());
                 }
                 catch (IOException e)
                 {
                         throw new RuntimeException();//为什么运行的时候这里会抛异常啊?
                                //因为如果你出入的IP不符合IP的格式,那么,程序也就没有在往下运行的必要了,所以要抛出RuntimeException异常。
                 }
                 finally
                 {
                         try
                         {
                                 if (s!=null)
                                 {
                                         s.close();
                                 }
                         }
                         catch (IOException e)
                         {
                                 throw new RuntimeException();
                         }
                 }
         }
}

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
黄昆 发表于 2012-7-17 22:34
import java.net.*;
import java.io.*;
class KeHuDuan

咋改?可以正常啊
回复 使用道具 举报
程序里有操作数据的,必然有异常。所以必须得try、catch一下
回复 使用道具 举报
刘笑 发表于 2012-7-17 22:53
程序里有操作数据的,必然有异常。所以必须得try、catch一下

已经try了啊
回复 使用道具 举报
这个问题我问了高手搞定了,把IP改成本地循环地址127.0.0.1就欧了,但是之前的那个IP确实是我电脑IP啊,为什么会抛连接超时异常啊?有谁详解一下啊
回复 使用道具 举报
1.首先要抛出UnknownHostException, IOException,这两种异常。
2.我写了个Server,那你的测试了客户端,是正常的。(见附件Server.png)
3.测试你的输出结果。(见test.png)
4.我写的Client(Client.png)

Server.PNG (16.26 KB, 下载次数: 69)

Server

Server

test.PNG (704 Bytes, 下载次数: 34)

测试输出

测试输出

Client.PNG (21.2 KB, 下载次数: 65)

Client

Client

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马