当前位置:  技术问答>java相关

关于socket例子.

    来源: 互联网  发布时间:2015-08-01

    本文导语:  我想实现书中的两个例子可是。。。 请不要烦帮忙改改,如果有socket方面的例子谢谢给一个!!! 程序: import java.io.*; import java.net.*; public class SimpleClient extends Object implements Runnable//, ReadCallback {        pro...

我想实现书中的两个例子可是。。。
请不要烦帮忙改改,如果有socket方面的例子谢谢给一个!!!
程序:

import java.io.*;
import java.net.*;

public class SimpleClient extends Object implements Runnable//, ReadCallback
{
       protected Socket serverSock;
       protected DataOutputStream outStream;
       protected Thread clientThread;
       protected ReadThread reader;

       public SimpleClient(String hostName, int portNumber)
       throws IOException
       {
         serverSock = new Socket(hostName, portNumber);
          outStream = new DataOutputStream(serverSock.getOutputStream());
          reader = new ReadThread(this.serverSock);
          reader.start();
       }

       public void start()
       {
          clientThread = new Thread(this);
          clientThread.start();
       }

       public void stop()
       {
          clientThread.stop();
          clientThread = null;
       }
       public synchronized void sendString(String str)
       throws IOException
       {
          System.out.println("Sending string:" +str);
          outStream.writeUTF(str);
       }
       public void run()
       {
          while(true)
          {
             try{
                   sendString("Hello There!");
                   Thread.sleep(2000);
                 }catch(Exception oops) {
                  oops.printStackTrace(); 
                  disconnect();
                  stop();
                }
           }
         }
     
         public void disconnect()
         {
            try{
                  reader.closeConnection();
               }catch(Exception badClose){
              }
         }
   
         public synchronized void dataReady(String str)
         {
            System.out.println("Got incoming string:"+ str);
          }
         public static void main(String[] args)
         {
            try{
                SimpleClient client = new SimpleClient("localhost", 4331);
                client.start();
              }catch(Exception cantStart) {
               System.out.println("Got error");
               cantStart.printStackTrace();
          }
      }
}
//////////////////////////////////////////////////
错误:
C:j2sdk1.4.0_01bin>javac SimpleClient.java
SimpleClient.java:9: cannot resolve symbol
symbol  : class ReadThread
location: class SimpleClient
       protected ReadThread reader;
                 ^
SimpleClient.java:16: cannot resolve symbol
symbol  : class ReadThread
location: class SimpleClient
          reader = new ReadThread(this.serverSock);
                       ^
Note: SimpleClient.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
2 errors

/////////////////////////////////////////服务器/////////////////
程序:
import java.io.*;
import java.net.*;

public class ServerConn extends Object implements ReadCallback
{
   protected SimpleServer server;
   protected Socket clientSock;
   protected ReadThread reader;
   protected DataOutputStream outStream;
 
   public ServerConn(SimpleServer server, Socket clientSock)
   throws IOException
   {
      this.server = server;
      this.clientSock = clientSock;
      outStream = new DataOutputStream(clientSock.getOutputStream());
      reader = new ReadThread(this, clientSock);
      reader.start();
   }

   public synchronized void dataReady(String str)
   {
      if(str == null)
      {
         disconnect();
         return;
      }
      try{
          outStream.writeUTF(server.processString(str));
         }catch(Exception writeError){
            writeError.printStackTrace();
            disconnect();
            return;
         }
    }
    public synchronized void disconnect()
    {
       try{
            reader.closeConnection();
          }catch(Exception cantclose){
            reader.stop();
          }
     }
}
//////////////////////////////////////////
错误:
public class ServerConn extends Object implements ReadCallback
                                                  ^
ServerConn.java:6: cannot resolve symbol
symbol  : class SimpleServer
location: class ServerConn
   protected SimpleServer server;
             ^
ServerConn.java:8: cannot resolve symbol
symbol  : class ReadThread
location: class ServerConn
   protected ReadThread reader;
             ^
ServerConn.java:11: cannot resolve symbol
symbol  : class SimpleServer
location: class ServerConn
   public ServerConn(SimpleServer server, Socket clientSock)
                     ^
ServerConn.java:17: cannot resolve symbol
symbol  : class ReadThread
location: class ServerConn
      reader = new ReadThread(this, clientSock);
                   ^
5 errors



|
你的例程是错的,我根据你的第一个例程进行了完善,虽然不够
完整,但已经可以编译运行了:

//##################################################
//  file: SimpleClient.java
//
import java.io.*;
import java.net.*;

public class SimpleClient extends Object implements Runnable   //, ReadCallback
{

       protected Socket serverSock;

       protected DataOutputStream outStream;
       protected Thread clientThread;
       protected ReadThread reader;

// --------------------------------------------------

class ReadThread extends Thread{

ServerSocket s;

Socket serverSock;

DataInputStream input;
String str;

int portnum;

public ReadThread(int port) throws IOException{
portnum = port;
s = new ServerSocket(portnum);
}

                public void closeConnection(){
try {
serverSock.close();
} catch (IOException ex) {
}

return;
}


public void start() 
{
try {
serverSock = s.accept();
input = new DataInputStream(serverSock.getInputStream());

} catch (IOException ex) {
System.err.println("Read nothing from client.");
this.stop();
}

while (true){
try {
str = new String(input.readUTF());
} catch (IOException ex) {
System.err.println("Cannot read input:"+ex.toString());
this.stop();
}

System.out.println("Server - "+str);
}
}
}

// ------------------------------------------------------------
      
       public SimpleClient(String hostName, int portNumber)
       throws IOException
       {

          reader = new ReadThread(portNumber);

          serverSock = new Socket(InetAddress.getLocalHost(), portNumber);

          outStream = new DataOutputStream(serverSock.getOutputStream());
       }

       public void start()
       {
          clientThread = new Thread(this);
          clientThread.start();
          reader.start();
       }

       public void stop()
       {
          clientThread.stop();
          clientThread = null;
       }
       public synchronized void sendString(String str)
       throws IOException
       {
          System.out.println("Client - Sending string:" +str);
          outStream.writeUTF(str);
       }
       public void run()
       {
          while(true)
          {
             try{
                   sendString("Hello There!");
                   Thread.sleep(2000);
                 }catch(Exception oops) {
                  oops.printStackTrace(); 
                  disconnect();
                  stop();
                }
           }
         }
     
         public void disconnect()
         {
            try{
                  reader.closeConnection();
               }catch(Exception badClose){
              }
         }
   
         public synchronized void dataReady(String str)
         {
            System.out.println("Got incoming string:"+ str);
          }
         public static void main(String[] args)
         {
            try{
                SimpleClient client = new SimpleClient("localhost", 2525);
                client.start();
            } catch(Exception cantStart) {
System.out.println("Got error");
cantStart.printStackTrace();
    }
}
}

|
你这里缺东西吧
这个应该是个读数据ReadThred()类找不到你这里没有
你在看看书上找一下这个类就可以了

|
ReadThread 是什么啊,好象是没有找到这个类

|
java的socket方面的东西网上很多,还是去下载一些下来看看,再往下走。

|
ReadThread 的代码可能在书的其他地方,你在找找

|
client 和 server 程序放在一起吗?server程序是自动运行的吗?

哈,我是个菜鸟,知道客户端是小程序,可以通过浏览器运行,
可服务器端的是application呀,就放在那里不用管它?

    
 
 

您可能感兴趣的文章:

  • 哪位高手给个unix系统下C语言socket+fork()+select()的例子?
  • PHP异步调用socket小例子
  • 求助linux下socket多线程编程的例子(C语言写的)
  • 在编译有关socket的例子时老有这些错误,是什么一回事
  • UNIX环境高级编程里一个SOCKET编程的例子问题
  • socket问题求例子!!
  • 100分:~~请哪位大侠随便用java写一个socket传文件的例子,服务器和客户端写全哦!!~~
  • linux 下g++编译 书上的socket的例子出错,请帮忙看看?
  • 谁能给一个unix下用c写的服务器端socket例子,谢谢了,急啊
  • socket中经典例子talk,编译错误,请教原因
  • 真心求助:各位大哥能帖一个 socket 程序的例子吗?(要是多线程序的),分少了开帖再加!谢谢!
  • SCO UNix 的 c/c++ 编译器哪儿有? 带socket的例子哪儿有?
  • 给个很简单的例子,socket的!
  • 请教一个socket 问题,例子来源于unp31
  • 谁有一个用c的socket传送特殊格式数据包的例子?具体格式如下:
  • 哪位大虾有数据报Socket客户端例子的java源码?急……
  • 谁能给个 linux 下的 socket网络通信程序例子(C语言的)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3