java socket编程中服务器指的是什么? 客户端指的又是什么?
服务器和客户端的对话又是以怎样的形式(方式)进行通信的?我刚学到socket,就是搞不懂这些,望高手指教...
服务器和客户端的对话又是以怎样的形式(方式)进行通信的?
我刚学到socket,就是搞不懂这些,望高手指教 展开
我刚学到socket,就是搞不懂这些,望高手指教 展开
3个回答
展开全部
/*服务端*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
第四步,编写服务器端的主体代码,如下所示。
public class ServerCode
{
// 设置端口号
public static int portNo = 3333;
public static void main(String[] args) throws IOException
{
ServerSocket s = new ServerSocket(portNo);
System.out.println("The Server is start: " + s);
// 阻塞,直到有客户端连接
Socket socket = s.accept();
try
{
System.out.println("Accept the Client: " + socket);
//设置IO句柄
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
while (true)
{
String str = in.readLine();
if (str.equals("byebye"))
{
break;
}
System.out.println("In Server reveived the info: " + str);
out.println(str);
}
}
finally
{
System.out.println("close the Server socket and the io.");
socket.close();
s.close();
}
}
}
/*客户端*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
第二,编写客户端的主体代码,如下所示:
public class ClientCode
{
static String clientName = "Mike";
//端口号
public static int portNo = 3333;
public static void main(String[] args) throws IOException
{
// 设置连接地址类,连接本地
InetAddress addr = InetAddress.getByName("localhost");
//要对应服务器端的3333端口号
Socket socket = new Socket(addr, portNo);
try
{
System.out.println("socket = " + socket);
// 设置IO句柄
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWrite out = new PrintWriter(BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
out.println("Hello Server,I am " + clientName);
String str = in.readLine();
System.out.println(str);
out.println("byebye");
}
finally
{
System.out.println("close the Client socket and the io.");
socket.close();
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
第四步,编写服务器端的主体代码,如下所示。
public class ServerCode
{
// 设置端口号
public static int portNo = 3333;
public static void main(String[] args) throws IOException
{
ServerSocket s = new ServerSocket(portNo);
System.out.println("The Server is start: " + s);
// 阻塞,直到有客户端连接
Socket socket = s.accept();
try
{
System.out.println("Accept the Client: " + socket);
//设置IO句柄
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
while (true)
{
String str = in.readLine();
if (str.equals("byebye"))
{
break;
}
System.out.println("In Server reveived the info: " + str);
out.println(str);
}
}
finally
{
System.out.println("close the Server socket and the io.");
socket.close();
s.close();
}
}
}
/*客户端*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
第二,编写客户端的主体代码,如下所示:
public class ClientCode
{
static String clientName = "Mike";
//端口号
public static int portNo = 3333;
public static void main(String[] args) throws IOException
{
// 设置连接地址类,连接本地
InetAddress addr = InetAddress.getByName("localhost");
//要对应服务器端的3333端口号
Socket socket = new Socket(addr, portNo);
try
{
System.out.println("socket = " + socket);
// 设置IO句柄
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWrite out = new PrintWriter(BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
out.println("Hello Server,I am " + clientName);
String str = in.readLine();
System.out.println(str);
out.println("byebye");
}
finally
{
System.out.println("close the Client socket and the io.");
socket.close();
}
}
}
展开全部
就是客户端服务器根据tcp/ip进行通信
追问
我理解的客户端是不是程序本身????
追答
程序本身?
比如java 的socket通信,你就可以理解为客户端为Socket,服务器端为ServerSocket
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-04-23
展开全部
服务器和客户端指的都是程序进程。客户端可以认为是你在用的程序,想从其他地方获取数据的进程,比如c/s架构的聊天系统,你的留言会先传到服务器,你得到的其他人的留言也是从服务器获取的。而服务器就是为客户端提供支持的一个进程。
追问
为什么要先运行服务器端再运行客户端呢?而不能反过来呢
追答
先运行客户端的话,获取不到服务器信息,没有人处理你的请求;而先运行服务器的话,及时没有请求要处理,服务器该怎么监听还怎么监听。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询