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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 工善器 高级黑马   /  2013-11-19 20:55  /  1195 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 工善器 于 2013-11-21 22:45 编辑

package it.cast.java.util;

import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
需求:定义端点接受数据并打印到控制台上。
服务端:
1.建立服务端的socket服务,ServerSocket();
        并监听一个端口
2.获取连接过来的客户端对象。
        通过ServerSocket的accept方法。没有连接就会等,所以这个方法,是阻塞式的。
3.客户端如果发过来数据,那么服务端要使用对应的
客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。
并打印在控制台。
4.关闭服务(可选)也可以一直等待接收。
*/
class TcpServer
{
        public static void main(String[] args) throws Exception
        {
                //建立服务端socket对象,并监听一个端口。
                ServerSocket ss=new ServerSocket(10054);
                //通过accept方法获取连接过来的客户端对象。
                while(true)
                {
                        Socket s=ss.accept();
                        //gethostaddress 返回的是ip地址。
                        String ip=s.getInetAddress().getHostAddress();
                        System.out.println(ip+"-------------is connected");
                        //获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据。
                        //定义一个输出流:
                        InputStream in=s.getInputStream();
                        //socket 对象带有一个getinputstream方法来获取一个输入流。
                        //定义一个字节数组。
                        byte[] buf=new byte[1024];
                        int len =in.read(buf);
                        //输入流有一个读取方法,它能够读取字节数组。
//                        打印数组,这里用到一个数组的创建方法,自带的??
                        System.out.println(new String(buf,0,len));
                        s.close();
                        //关闭客户端
                }
//                ss.close();
               
        }
        }

我在tcp练习中,老是出现,右键run as 点后,里面只有一个run configurations 怎么回事儿










评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

倒序浏览
以前也出现过这样的问题,我的解决方案分三种,
第一:重启eclipse
第二:新建项目,把文件都考进去
第三:把文件中的其他class文件都删除,再新建项目,把代码都考进去
通常会解决,亲们啥情况,里面原因是,
我记得有一次是我代码有误,有几次,代码无误,通过上述三种方案有正常了

评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

回复 使用道具 举报
把代码复制到我的eclipse下面没有发现这个问题呢。
还有就是亲,既然你说是练习tcp写的,那么应该把这部分视频都看完了吧,你这个服务器的代码应该写成多线程的,不然如果由多个客户端访问的话,只能一个个排队访问了

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
没有,只是一个联系。我已经知道原因了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马