【发布时间】:2014-03-24 04:24:21
【问题描述】:
我有一个问题。 我不完全了解客户端和服务器套接字是如何工作的? 我的理解是 创建服务器套接字时,它有许多可以打开的端口。在服务器端创建套接字对象,这些对象连接到服务器套接字的不同端口。连接到服务器套接字的套接字连接到客户端套接字并完成连接?
我是对还是错?
public class TryThreads extends Thread
{
private int Portnumber;
private static String inputLine;
public TryThreads(int portNumber)
{
Portnumber = portNumber;
setDaemon(false);
}
public static void main(String[] args)
{
//create three threads
Thread first = new TryThreads(63400);
Thread second = new TryThreads(63401);
first.start();
second.start();
//third.start();
System.out.println("ending main");
return;
}
public void run()
{
//System.out.println("one socket port opened");
try
{
System.out.println("one socket port opened");
ServerSocket serverSocket = new ServerSocket(Portnumber);
System.out.println("one socket port opened");
while (true)
{
System.out.println("ending main2");
//System.out.println("one socket port opened");
Socket clientSocket = serverSocket.accept();
BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
while((inputLine = bufferedReader.readLine()) != null)
System.out.println(inputLine);
}
}
catch(IOException e)
{
System.out.println(e);
}
}
}
还有客户
public class client
{
private static PrintWriter printWriter;
public static void main(String[] args)
{
BufferedReader in = null;
try
{
Socket socket = new Socket("localhost",63400);
printWriter = new PrintWriter(socket.getOutputStream(),true);
printWriter.println("Hello Socket");
printWriter.println("EYYYYYAAAAAAAA!!!!");
socket.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
}
【问题讨论】:
-
您可以简单地阅读这篇文章并查看您的代码。 javaworld.com/article/2077322/core-java/… 或者 codeproject.com/Articles/24600/Using-Sockets-in-Java-Server 学习东西的最好方法是自己做,然后你会记住更多。
-
我想看看 Socket 和 Server socket 类的方法定义,可以吗?
-
这样就有了 ServerSocket 实现:docjar.com/html/api/java/net/ServerSocket.java.html 和 Socket 实现:docjar.com/html/api/java/net/Socket.java.html
-
不清楚你的代码与它有什么关系,或者你真正要问的是什么。