The moose likes Java in General and the fly likes Socket Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Socket Question" Watch "Socket Question" New topic

Socket Question

ricky gonzalez
Ranch Hand

Joined: Jun 30, 2000
Posts: 167
Hi, I have a question about sockets. Each socket has to have a unique combination of ip address and a port number. So, I have this code that creates multiple instances of a client with local host ip, and IDENTICAL port number. It works but I have no idea how? Can someone help me understand it?
import java.net.*;
import java.io.*;
import java.net.*;
import java.io.*;
class JabberClientThread extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
private static int counter = 0;
private int id = counter++;
private static int threadcount = 0;
public static int threadCount() {
return threadcount;
public JabberClientThread(InetAddress addr) {
System.out.println("Making client " + id);
try {
socket =
new Socket(addr, MultiJabberServer.PORT);
} catch(IOException e) {
System.err.println("Socket failed");
try {
in =
new BufferedReader(
new InputStreamReader(
out =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
} catch(IOException e) {
try {
} catch(IOException e2) {
System.err.println("Socket not closed");
public void run() {
try {
for(int i = 0; i < 25; i++) {
out.println("Client " + id + ": " + i);
String str = in.readLine();
} catch(IOException e) {
System.err.println("IO Exception");
} finally {
try {
} catch(IOException e) {
System.err.println("Socket not closed");
public class MultiJabberClient {
static final int MAX_THREADS = 40;
public static void main(String[] args)
throws IOException, InterruptedException {
InetAddress addr =
while(true) {
new JabberClientThread(addr);
Van Glass
Ranch Hand

Joined: Nov 18, 2000
Posts: 110
I'm not sure I understand but I think that you are really wanting to use a ServerSocket and not a Socket. The ServerSocket must bind to a unique IP/port combination. The Socket class does not have this restriction.
For example. You could easily have multiple web clients (Socket) connecting to a Web server (ServerSocket). You cannot however have multiple Web servers (ServerSocket) running on the same port.
Hope this helps.
JFind - Your Java Resource www.jfind.com
I agree. Here's the link: http://aspose.com/file-tools
subject: Socket Question
Similar Threads
Will it ever be GCed?
Chat At Server Part Both write and read at the same time?
client / server (communication problem...)
Dynamic IP address and socket programming.
Sockets having identical port number