客户端-服务器套接字通信TCP / IP中的对象问题

本杰·加里多(Benja Garrido)

我正在尝试运行一个程序,该程序尝试与创建服务器线程的套接字TCP-IP通信。

当我运行程序时,它什么也没做。

客户端代码:

package benjagarrido.com.examen2;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Scanner;

public class Mesa1 {
    public static void main(String[] args) {
        Socket soc;
        ObjectOutputStream objSalida=null;
        ObjectInputStream objEntrada=null;
        int puerto = 12345;

        ArrayList<Comensal> listComensales = solicitarComensales();

        try {
            // Creamos el socket de comunicacion
            soc = new Socket(InetAddress.getLocalHost(), puerto);
            // Creamos los canales de comunicación entrada/salida
            // objEntrada= new ObjectInputStream(soc.getInputStream());
            objSalida = new ObjectOutputStream(soc.getOutputStream());
            objSalida.writeUTF("Mesa 1");
            objSalida.writeObject(listComensales);
            soc.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private static ArrayList<Comensal> solicitarComensales() {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        System.out.println("¿Cuantos comensales serán? (Máximo 4 comensales)");
        int iNumComensales;
        iNumComensales = sc.nextInt();
        ArrayList<Comensal> listComensales = new ArrayList<>();
        for (int i = 0; i < iNumComensales; i++) {
            Comensal comensal = solicitarMenu(i);
            listComensales.add(comensal);
        }
        return listComensales;
    }

    private static Comensal solicitarMenu(int i) {
        Comensal comensal = new Comensal();
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        System.out
                .println("Comensal" + (i + 1) + " Elija el plato principal: ");
        for (Platos plato : Platos.values()) {
            System.out.println(plato.name());
        }
        comensal.setiPlato(sc.nextInt());
        System.out.println("Comensal" + (i + 1)
                + " Elija la bebida principal: ");
        for (Bebidas bebida : Bebidas.values()) {
            System.out.println(bebida.name());
        }
        comensal.setiBebida(sc.nextInt());
        System.out.println("Comensal" + (i + 1)
                + " Elija el postre principal: ");
        for (Postres postre : Postres.values()) {
            System.out.println(postre.name());
        }
        comensal.setiPostre(sc.nextInt());
        return comensal;
    }
}

服务器的代码:

package benjagarrido.com.examen2;

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

@SuppressWarnings("unused")
public class Servidor {

    public static void main(String[] args) {
        ServerSocket servidor;
        Socket serverCliente;
        int puerto = 12345;

        try {
            servidor = new ServerSocket(puerto);
            System.out.println("Servidor arrancado correctamente");
            //while (true) {
                // aceptamos la conexion de cliente
                serverCliente = servidor.accept();
                Thread hilo = new Thread(new ServidorHilo(serverCliente));
                hilo.start();
            //}
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

服务器线程的代码:

package benjagarrido.com.examen2;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Date;

public class ServidorHilo implements Runnable {
    ObjectOutputStream objSalida=null;
    ObjectInputStream objEntrada=null;
    Socket soc;
    int puerto = 12345;

    public ServidorHilo(Socket sCliente) {
        this.soc = sCliente;
    }

    @Override
    public void run() {
        ArrayList<Comensal> listComensales = new ArrayList<>();
        try {
            // Creamos el socket de comunicacion
            soc = new Socket(InetAddress.getLocalHost(), puerto);
            // Creamos los canales de comunicación entrada/salida
            objEntrada= new ObjectInputStream(soc.getInputStream());
            //objSalida = new ObjectOutputStream(soc.getOutputStream());

            //String sMesa = objEntrada.readUTF();
            listComensales=(ArrayList<Comensal>) objEntrada.readObject();
            Date date = new Date();
            String sFechaHora = date.getDay()+"/"+date.getMonth()+"/"+date.getYear()+"-"+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
            System.out.println("Se ha recibido el pedido de "+""+" con fecha y hora "+sFechaHora);
            //salida.write();
            objSalida.close();
        } catch (IOException e) {
            // nothing
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

我需要你的帮助。

本杰·加里多(Benja Garrido)

当我尝试创建另一个套接字时,错误发生在ServidorHilo类上:

// Creamos el socket de comunicacion
soc = new Socket(InetAddress.getLocalHost(), puerto);

谢谢,抱歉。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python 2.7.8:套接字-TCP套接字中的客户端服务器数据丢失

来自分类Dev

Java客户端/服务器套接字问题

来自分类Dev

TCP套接字服务器/客户端连接应使用哪个IP /端口?

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

UDP 客户端/服务器程序,通过不同 IP 和端口上的 2 个套接字进行通信

来自分类Dev

将客户端套接字与服务器套接字连接时出现问题

来自分类Dev

C TCP/IP 套接字:如何将客户端套接字的输入同步到服务器套接字以交替进行

来自分类Dev

如何重用打开的客户端连接与服务器上的分叉子进程(TCP/IP 套接字)

来自分类Dev

TCP客户端在android服务中读写套接字

来自分类Dev

如何从Android Tcp客户端套接字连接到具有公共IP的Java TCP服务器套接字?

来自分类Dev

两个客户端无法在套接字客户端-服务器连接中互相交谈

来自分类Dev

音频数据的TCP套接字通信-多个服务器到多个客户端

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

Java TCP 客户端/服务器套接字

来自分类Dev

通过ActionScript服务器和Java客户端之间的套接字发送对象

来自分类Dev

Java多线程套接字客户端/服务器:发送和接收Enummap对象

来自分类Dev

Java中从客户端到服务器的通信

来自分类Dev

服务器如何与 RAFT 中的客户端通信?

来自分类Dev

TCP / IP服务器客户端

来自分类Dev

TCP / IP服务器客户端

来自分类Dev

检查PHP套接字服务器中的断开连接客户端

来自分类Dev

在python套接字服务器中接受多个客户端

来自分类Dev

客户端到服务器,Python中的套接字多对一关系

来自分类Dev

Java中持久的客户端-服务器套接字连接

来自分类Dev

Python中的UDP客户端/服务器套接字

来自分类Dev

使用Java中的套接字将文件从服务器下载到客户端

来自分类Dev

使用C中的UDP套接字将结构从客户端传递到服务器

来自分类Dev

使用C中的套接字将文件从客户端发送到服务器

Related 相关文章

  1. 1

    Python 2.7.8:套接字-TCP套接字中的客户端服务器数据丢失

  2. 2

    Java客户端/服务器套接字问题

  3. 3

    TCP套接字服务器/客户端连接应使用哪个IP /端口?

  4. 4

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  5. 5

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  6. 6

    UDP 客户端/服务器程序,通过不同 IP 和端口上的 2 个套接字进行通信

  7. 7

    将客户端套接字与服务器套接字连接时出现问题

  8. 8

    C TCP/IP 套接字:如何将客户端套接字的输入同步到服务器套接字以交替进行

  9. 9

    如何重用打开的客户端连接与服务器上的分叉子进程(TCP/IP 套接字)

  10. 10

    TCP客户端在android服务中读写套接字

  11. 11

    如何从Android Tcp客户端套接字连接到具有公共IP的Java TCP服务器套接字?

  12. 12

    两个客户端无法在套接字客户端-服务器连接中互相交谈

  13. 13

    音频数据的TCP套接字通信-多个服务器到多个客户端

  14. 14

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  15. 15

    Java TCP 客户端/服务器套接字

  16. 16

    通过ActionScript服务器和Java客户端之间的套接字发送对象

  17. 17

    Java多线程套接字客户端/服务器:发送和接收Enummap对象

  18. 18

    Java中从客户端到服务器的通信

  19. 19

    服务器如何与 RAFT 中的客户端通信?

  20. 20

    TCP / IP服务器客户端

  21. 21

    TCP / IP服务器客户端

  22. 22

    检查PHP套接字服务器中的断开连接客户端

  23. 23

    在python套接字服务器中接受多个客户端

  24. 24

    客户端到服务器,Python中的套接字多对一关系

  25. 25

    Java中持久的客户端-服务器套接字连接

  26. 26

    Python中的UDP客户端/服务器套接字

  27. 27

    使用Java中的套接字将文件从服务器下载到客户端

  28. 28

    使用C中的UDP套接字将结构从客户端传递到服务器

  29. 29

    使用C中的套接字将文件从客户端发送到服务器

热门标签

归档