Java Sockets Programming The package java net provides
- Slides: 21
Java Sockets Programming • The package java. net provides support for sockets programming (and more). • Typically you import everything defined in this package with: import java. net. *; Netprog: Java Sockets 1
Classes Inet. Address Socket Server. Socket Datagram. Packet Netprog: Java Sockets 2
Inet. Address class • static methods you can use to create new Inet. Address objects. – get. By. Name(String host) – get. Local. Host() Inet. Address x = Inet. Address. get. By. Name( “monte. cs. rpi. edu”); Netprog: Java Sockets 3
Sample Code: Lookup. java • Uses Inet. Address class to lookup hostnames found on command line. > java Lookup monte www. yahoo. com monte: 128. 213. 8. 110 www. yahoo. com: 64. 58. 76. 176 Netprog: Java Sockets 4
try { Inet. Address a = Inet. Address. get. By. Name(hostname); System. out. println(hostname + ": " + a. get. Host. Address()); } catch (Unknown. Host. Exception e) { System. out. println("No address found for " + hostname); } Netprog: Java Sockets 5
Socket class • Corresponds to active TCP sockets only! – client sockets – socket returned by accept(); • Passive sockets are supported by a different class: Server. Socket • UDP sockets are supported by Datagram. Socket Netprog: Java Sockets 6
Socket Constructors • Constructor creates a TCP connection to a named TCP server. – There a number of constructors: Socket(Inet. Address server, int port); Socket(Inet. Address server, int port, Inet. Address local, int localport); Socket(String hostname, int port); Netprog: Java Sockets 7
Socket Methods void close(); Inet. Address get. Inet. Address(); getpeername Inet. Address get. Local. Address(); getsockname Input. Stream get. Input. Stream(); Output. Stream get. Output. Stream(); • Lots more (setting/getting socket options, partial close, etc. ) Netprog: Java Sockets 8
Socket I/O • Socket I/O is based on the Java I/O support (in the package java. io). • Input. Stream and Output. Stream are abstract classes – common operations defined for all kinds of Input. Streams, Output. Streams… Netprog: Java Sockets 9
Input. Stream Basics // reads some number of bytes and // puts in buffer array b int read(byte[] b); // reads up to len bytes int read(byte[] b, int off, int len); Both methods can throw IOException. Both return – 1 on EOF. Netprog: Java Sockets 10
Output. Stream Basics // writes b. length bytes void write(byte[] b); // writes len bytes starting // at offset off void write(byte[] b, int off, int len); Both methods can throw IOException. Netprog: Java Sockets 11
Server. Socket Class (TCP Passive Socket) • Constructors: Server. Socket(int port); Server. Socket(int port, int backlog, Inet. Address bind. Addr); Netprog: Java Sockets 12
Server. Socket Methods Socket accept(); void close(); Inet. Address get. Inet. Address(); int get. Local. Port(); throw IOException, Security. Exception Netprog: Java Sockets 13
Sample Echo Server TCPEcho. Server. java Simple TCP Echo server. Based on code from: TCP/IP Sockets in Java Netprog: Java Sockets 14
UDP Sockets • Datagram. Socket class • Datagram. Packet class needed to specify the payload (incoming or outgoing). Netprog: Java Sockets 15
Datagram. Socket Constructors Datagram. Socket(); Datagram. Socket(int port, Inet. Address a); All can throw Socket. Exception or Security. Exception. Netprog: Java Sockets 16
Datagram Methods void connect(Inet. Address, int port); void close(); void receive(Datagram. Packet p); void send(Datagram. Packet p); Lots more! Netprog: Java Sockets 17
Datagram. Packet • Contain the payload (a byte array). • Can also be used to specify the destination address (when not using connected mode UDP). Netprog: Java Sockets 18
Datagram. Packet Constructors For receiving: Datagram. Packet( byte[] buf, int len); For sending: Datagram. Packet( byte[] buf, int len Inet. Address a, int port); Netprog: Java Sockets 19
Datagram. Packet methods byte[] get. Data(); void set. Data(byte[] buf); destination address void set. Address(Inet. Address a); void set. Port(int port); Inet. Address get. Address(); could be either int get. Port(); address (depends on context) Netprog: Java Sockets 20
Sample UDP code UDPEcho. Server. java Simple UDP Echo server. Test using nc as the client (netcat): > nc –u hostname port Netprog: Java Sockets 21
- Raw sockets in unix network programming
- Java.net package
- Tcp/ip sockets in java
- Jdk provides an interpretive compiler for java.
- Math package java
- Jcheck box
- Java activity diagram
- Java lang package
- Package in java
- Java package naming convention
- Java random package
- Java package design
- Censer
- Tcp ip sockets in c
- Steering linkage sockets
- Infini band
- Berkely sockets
- Reliable datagram sockets
- Raw socket
- Elementary udp sockets
- Sockets and threads
- Cleanroom 380v sockets