Java 最简单的socket编程,连接不上本地,一直都有Connection refused: connect

先上代码服务端:publicclassTcpServer{publicstaticvoidmain(String[]args)throwsException{Server... 先上代码

服务端:
public class TcpServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(7777);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
byte[] buffer = new byte[200];
int length = 0;
while (-1 == (length = is.read(buffer, 0, buffer.length)))
{
String str = new String(buffer, 0, length);
System.out.println("welcome");
}
}
}
客户端:

public class TcpClient
{
public static void main(String[] args) throws Exception
{
Socket socket = new Socket("127.0.0.1", 7777);

OutputStream os = socket.getOutputStream();

os.write("hello world".getBytes());
}
}
一运行就有java.net.ConnectException: Connection refused: connect,求大神解决
防火墙已经关闭了的
展开
 我来答
liujie151376
推荐于2017-11-25 · TA获得超过411个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:198万
展开全部
//客户端
public static void main(String[] args) throws Exception
 {
  Socket socket = new Socket("127.0.0.1", 7777);
  
  OutputStream os = socket.getOutputStream();
  
  os.write("hello world".getBytes());
  os.close();//客户端使用完流之后记得要关闭!!
 }
 //服务端
 public static void main(String[] args) throws Exception
 {
  ServerSocket ss = new ServerSocket(7777);
  Socket socket = ss.accept();
  InputStream is = socket.getInputStream();
  byte[] buffer = new byte[200];
  int length = 0;
  while (-1 != (length = is.read(buffer, 0, buffer.length)))//这句错了,是不等于!
  {
   String str = new String(buffer, 0, length);
   System.out.println("welcome "+str);
  }
 }
追问
没有解决根本问题,连不上。。。
追答
你先运行服务端,再运行客户端试试
百度网友20474cf
2014-03-31 · TA获得超过1095个赞
知道小有建树答主
回答量:1424
采纳率:0%
帮助的人:727万
展开全部

你是不是没有启动服务端啊?用下面命令试一下:

>netstat -no | findstr 7777
追问
没有我启动的服务器。。怎么启动~,findstr 7777就直接卡死了
追答

不是卡死了,是阻塞了。有看了下,你代码写的有问题liujie151376已指出。

while (-1 != (length = is.read(buffer, 0, buffer.length)))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
odfriend
2014-03-31 · 超过16用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:38.2万
展开全部
InetSocketAddress address = new InetSocketAddress("127.0.0.1", 7777);
try {
socket.connect(address, 10000 * 100);
} catch (IOException e) {
e.printStackTrace();
}
换这个写法试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-31
展开全部
电脑防火墙关了试试。
追问
已经关了的。。
追答
代码没有问题,在我这儿是可以连通的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友06405d5
2014-03-31 · 超过26用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:62.8万
展开全部
朋友,你要确定你先运行server端,让后运行client端。读取流的地方有问题,还有,流管道用完了要关闭。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式