import java.io.*;
import java.net.*;public class lesson10
{
public static void main(String[]args)
{
if(args.length>0)
server();
else
client();
}

public static void server()
{
try {
ServerSocket ss=new ServerSocket(6000);
Socket s=ss.accept();
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();
os.write("Hello Welcome U".getBytes());
byte[] buf=new byte[100];
int len=is.read(buf);
System.out.println(new String(buf,0,len));
os.close();
is.close();
s.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


public static void client()
{
try {
Socket s=new Socket(InetAddress.getByName(null),6000);
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();
os.write("Hello this is mine".getBytes());
byte [] buf=new byte[100];
int len=is.read(buf);
System.out.println(new String(buf,0,len));
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}错误代码如下:
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at lesson10.client(lesson10.java:42)
at lesson10.main(lesson10.java:13)拜托大家说的明白点 我是刚学的 什么都不懂啊 谢谢了
ps:我用的是eclipse

解决方案 »

  1.   

    Socket s=new Socket(InetAddress.getByName(null),6000); 
    至少你得填写一个主机名,除此之外该主机的6000端口还必须开放.
      

  2.   

    楼主,你仔细的查查手册,关于jdk的,你看看你的那些用法,
    ServerSocket ss=new ServerSocket(6000);
    System.out.println(new String(buf,0,len));
    他们是关于什么的?
    当然,你自己去查,能够有助于你解决问题,也能够让你下次不会犯同样的错误,这里提醒一下ServerSocket(int port) 它是创建绑定到特定端口的服务器套接字。也就是这个端口你开了没有?端口不开放,你当然不能访问了,这里只给你列出一些基本的,当然,就是你上面用到的东西,具体的,String(byte[] bytes, int offset, int length) (如果没有理解错,你应该是用的这个吧) 它是通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。这里,你的字符里面需要有东西哦,呵呵,我只是一个菜鸟,真的,你不给分,很少人来看的,不过我只是个普通人,来看看你的,算是支持你吧,谢谢了,
      

  3.   

    忘记说了,
    Connection refused: connect
    其实这里已经告诉了你问题了
    因为连接根本连不上嘛,