服务器端和客户端都是通过SOCKET来进行通信的,首先产生一个 socket实例,通过这个实例,服务器端调用accept这个方法接收来自客户端发送的信息.但是在产生socket实例的时候必须初始化一个端口.用来负责接受客户端的请求!
客户端要给服务器发送消息也必须产生一个socket实例,初始化的时候必须指定服务器的IP地址,并且指定服务接收的端口号,这样客户端才能找到服务器要接收的地方,找到地方就可以发送过去了。和你写信一样。找到地址
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
这个只是用来获取一个从键盘的一个流.传送给服务器端的数据都是通过流来表示的。意思是是键盘输入的一个字节转化成字符流.并输出或者写入!
java socket客户端向服务器端发送消息,可以使用socket类,实例如下:
mport java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String args[]) {
try {
Socket connection =new Socket("127.0.0.1", 5050);
BufferedReader input = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
PrintWriter out = new PrintWriter(connection.getOutputStream(),true );
String info;
info = input.readLine();
System.out.println(info);
boolean done = false;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String sInput;
//out.println("BYE");
while (!done) {
info = input.readLine();
System.out.println(info);
}
connection.close();
}
catch (SecurityException e) {
System.out.println("SecurityException when connecting Server!");
}
catch (IOException e) {
System.out.println("IOException when connecting Server!");
}
}
}
基于C/S(即客户端/服务器)模式的通信,有使用面向连接协议(TCP)协议进行的,也可以用面向无连接的UDP协议的。不过就上述程序来看,是TCP Socket了。客户端和服务器通过Socket方式进行通信,Socket可以形象地理解成一个介于服务器和客户端的通道,通道的两端均通过该通道读取和写入Message,程序中的BufferedReader和PrintWriter均为I/O流,只是适用的对象不同而已,BuffedrReader是字符流,需套接在字节流上,用于读取信息,socket.getInputStream()表明读取的对象是Socket中输入的信息,PrintWriter用于向Socke中打印信息。另外,System.out.println()方法用于向标准输出设备输出信息。理解该程序时,需搞明白向哪个对象中读取还是写入信息。稍微抽象一点,不过不是很难,再好好看看书,仔细琢磨琢磨,相信你能明白的!
你要说什么?