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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东城 中级黑马   /  2013-2-15 00:48  /  1542 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package sever;

  2. import java.net.*;
  3. import java.net.ServerSocket;
  4. import socket.Tcp;//Tcp类里面有:公共变量port,公共变量socket,无参构造方法Tcp()

  5. public class Sever {
  6.         ServerSocket serverSocket = null;
  7.         Tcp tcp = new Tcp();// error
  8.         try {
  9.                 serverSocket = new ServerSocket(tcp.port);
  10.                 tcp.socket = serverSocket.accept();
  11.         } catch (Exception e) {
  12.                 e.printStackTrace();
  13.         } finally {
  14.                 try {
  15.                         serverSocket.close();
  16.                 } catch (Exception e) {
  17.                 }
  18.         }
  19. }// error
复制代码
error处为提示的编译错误

2 个回复

倒序浏览

看到你这个问题我可真是晕了,java中到底有没有Tcp这个类啊!

我查遍了文档怎么都没有找到啊?

其实根本就么有Tcp这个类,又何谈构造方法呢!

Tcp只是一个面向连接的可靠地网络传输协议而已,在Socket及ServerSocket编程中将会用到该协议,

但也从来都没有用到你的这种用法啊:Tcp tcp = new Tcp()

在Tcp编程里面客户端的样例如下:

class TcpClient
{
        public static void main(String[] args)throws Exception
        {
                Socket s = new Socket("192.168.1.254",10004);
               
                OutputStream out = s.getOutputStream();

                out.write("服务端,你好".getBytes());

               
                InputStream in = s.getInputStream();

                byte[] buf = new byte[1024];

                int len = in.read(buf);

                System.out.println(new String(buf,0,len));

                s.close();
        }
}

看到没有,这里面根本没有用到Tcp这个类(其实根本都没有),只是上面代码的底层实现用到了Tcp这个网络传输协议而已!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 吴在强 于 2013-2-16 16:13 编辑

没有Tcp这个类,它只是个传输协议,
你可以自己查api文档,文档里的java.net包,都是关于网络传输的类和方法
你的服务器代码应该这么写,如下:
package sever;

import java.net.*;
import java.net.ServerSocket;
import socket.Tcp;//Tcp类里面有:公共变量port,公共变量socket,无参构造方法Tcp()

public class Sever {
        ServerSocket serverSocket = null;
        Socket socket = null;
        //Tcp tcp = new Tcp();// error
        try {
                serverSocket = new ServerSocket(11000);//这个端口是监听你客户端的那个,这里我随便设了一个
                socket = serverSocket.accept();
                //获取输入流对象
                InputStream in = socket.getInputStream();
                //获取输出流对象
                OutputStream out = socket.getOutputStream();
                //就看你服务端要干什么事情了,你自己写的,下面就不写了

        } catch (Exception e) {
                e.printStackTrace();
        } finally {
                try {
                        serverSocket.close();
                } catch (Exception e) {
                }
        }
}

应该这么写服务端  serverSocket = new ServerSocket(11000);//这个端口是监听你客户端的那个,这里我随便设了一个
                socket = serverSocket.accept();
                //获取输入流对象
                InputStream in = socket.getInputStream();
                //获取输出流对象
                OutputStream out = socket.getOutputStream();
                //就看你服务端要干什么事情了,你自己写的,下面就不写了
你可以用这个运行试试!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

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