Avatar billede tunc84 Nybegynder
19. oktober 2005 - 15:59 Der er 8 kommentarer og
1 løsning

Porte, Sockets, TCP samt UDP??

Hej er der nogen der kan hælpe mig med at forklare hvad disse ord betyder?
Avatar billede arne_v Ekspert
19. oktober 2005 - 16:04 #1
socket er et TCP/IP begreb som dækker over "forbindelse"

en socket er identificeret ved en IP adresse og et 16 bit port nummer

TCP er en protokol oven på IP som er connection orienteret og reliable

UDP er også en protokol oven på IP som ikke er connection orienteret og som ikke
er reliable (men den er hurtig !)
Avatar billede bufferzone Praktikant
19. oktober 2005 - 16:04 #2
Brug google og søg med

define:tcp
define:udp
define:port
define:socket
Avatar billede tunc84 Nybegynder
19. oktober 2005 - 16:11 #3
takker arne_v læg et svar
Avatar billede arne_v Ekspert
19. oktober 2005 - 16:12 #4
svar
Avatar billede tunc84 Nybegynder
19. oktober 2005 - 16:12 #5
Hey arne ku du ik gi et Java eksempel på brug af henholdsvis TCP og UDP
Avatar billede arne_v Ekspert
19. oktober 2005 - 16:16 #6
TCP upload eksempel:

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

public class Client {
  public static void main(String[] args) throws Exception {
      Socket s = new Socket("localhost", 9999);
      OutputStream os = s.getOutputStream();
      InputStream is = new FileInputStream("C:\\z1.zip");
      byte[] b = new byte[10000];
      int n;
      while((n = is.read(b)) >= 0) {
        os.write(b, 0, n);
      }
      os.close();
      is.close();
  }
}


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

public class Server {
  public static void main(String[] args) throws Exception {
      ServerSocket ss = new ServerSocket(9999);
      Socket s = ss.accept();
      InputStream is = s.getInputStream();
      OutputStream os = new FileOutputStream("C:\\z2.zip");
      byte[] b = new byte[10000];
      int n;
      while((n = is.read(b)) >= 0) {
        os.write(b, 0, n);
      }
      os.close();
      is.close();
  }
}
Avatar billede arne_v Ekspert
19. oktober 2005 - 16:17 #7
jeg har desværre ikke nogle UDP eksempler på lager
Avatar billede tunc84 Nybegynder
19. oktober 2005 - 16:20 #8
Perfekt tusind tak :)
Avatar billede trp79 Nybegynder
21. oktober 2005 - 08:33 #9
Så kan du da lige få et simpelt udp eks her:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.io.IOException;

public class UDPServer {
    private DatagramSocket socket = null;
    private DatagramPacket packet = null;
    private byte[] buffer = new byte[1024]; //recievebuffer

    public UDPServer(int port){
        //create a packet to receive the buffer
        packet = new DatagramPacket(buffer, buffer.length);

        try{
            socket = new DatagramSocket(port);
        }
        catch(SocketException e){
            System.err.println("UDPServer - contructor - Error creating DatagramSocket on port: "+port+". Exception:"+e);
        }

        boolean listen = true;
        while(listen){
            System.out.println("UDPServer - waiting for packet");
            try{
                socket.receive(packet);
                System.out.println("UDPServer - packet received");
            }
            catch(IOException e){
                System.err.println("UDPServer - listen - Error receiving packet. Exception:"+e);
            }
            String message = new String(buffer,0,0, packet.getLength());
            System.out.println("UDPServer - tekst modtaget:"+message);
            if(message.equals("stop server")){
                listen=false;
                System.out.println("Stopping server");
            }
        }
    }
    public static void main(String[] args) {
        UDPServer server = new UDPServer(8505);
    }

}




import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.io.IOException;
import java.net.InetAddress;

public class UDPClient {
    private InetAddress internetAddress = null;
    private DatagramPacket packet = null;
    private DatagramSocket socket = null;
    public UDPClient(){
    }

    public void sendMessage(String text, int port, String host)
    {
        byte[] message = new byte[text.length()];
        message = text.getBytes();
        try{
            internetAddress = InetAddress.getByName(host);
            packet = new DatagramPacket(message, text.length(), internetAddress, port);
            socket = new DatagramSocket();
            socket.send(packet);
            System.out.println("UDPClient: packet send - text:"+text);
        }
        catch(SocketException e){
            System.err.println("UDPClient - contructor - Error creating DatagramSocket. SocketException:"+e);
        }
        catch(UnknownHostException u){
            System.err.println("UDPClient - contructor - Error creating DatagramSocket. UnknownHostException:"+u);
        }
        catch(IOException i){
            System.err.println("UDPClient - contructor - Error creating DatagramSocket. IOException:"+i);
        }
        packet = null;
        socket = null;
    }

    public static void main(String[] args) {
        UDPClient client = new UDPClient();
        client.sendMessage("Hej", 8505, "localhost");
        client.sendMessage("Hej igen", 8505, "localhost");
        client.sendMessage("stop server", 8505, "localhost");
    }

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester