Socket通信,实现单客户端和服务器交互的C/S结构
2016-12-07 18:23
330 查看
首先创建客户端程序:
package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client
{
public static void main(String args[])
{
try
{
Socket socket=new Socket("127.0.0.1",9000);//向本机的9000端口发出客户请求
System.out.println("客户端开启");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));//InputStreamReader是字节流通向字符流的桥梁,从底层流读取字节
//BufferedReader 从字符输入流中读取文本
PrintWriter os=new PrintWriter(socket.getOutputStream());//getOutputStream()返回此套接字的输出流
String readline;
readline=in.readLine();
while(!readline.equals("bye"))//若读入的字符串为bye,就停止循环
{
os.println(readline);//将读入的字符串输出到Server
os.flush();//刷新输出流,使Server马上收到该字符串
readline=in.readLine();
}
os.close();//关闭Socket输出流
socket.close();//关闭Socket
}catch(IOException e){System.out.println("error:"+e);}
}
}
然后创建服务器端程序:
package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static void main(String args[])
{
try{
ServerSocket server=new ServerSocket(9000);//在端口9000监听客户请求
System.out.println("服务已开启");
Socket socket=server.accept();//使用accept()阻塞等待客户请求
System.out.println("接收到客户端的访问");
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=" ";
while(line!=null&&!line.equals("bye"))
{
line=is.readLine();
System.out.println("Server:"+line);
}
is.close();
socket.close();
server.close();
}catch(IOException e){System.out.println("error:"+e);}
}
}
运行时有个先后顺序,要先运行服务器端的程序,再运行客户端的程序,下面是我程序的运行结果截图。
package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client
{
public static void main(String args[])
{
try
{
Socket socket=new Socket("127.0.0.1",9000);//向本机的9000端口发出客户请求
System.out.println("客户端开启");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));//InputStreamReader是字节流通向字符流的桥梁,从底层流读取字节
//BufferedReader 从字符输入流中读取文本
PrintWriter os=new PrintWriter(socket.getOutputStream());//getOutputStream()返回此套接字的输出流
String readline;
readline=in.readLine();
while(!readline.equals("bye"))//若读入的字符串为bye,就停止循环
{
os.println(readline);//将读入的字符串输出到Server
os.flush();//刷新输出流,使Server马上收到该字符串
readline=in.readLine();
}
os.close();//关闭Socket输出流
socket.close();//关闭Socket
}catch(IOException e){System.out.println("error:"+e);}
}
}
然后创建服务器端程序:
package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static void main(String args[])
{
try{
ServerSocket server=new ServerSocket(9000);//在端口9000监听客户请求
System.out.println("服务已开启");
Socket socket=server.accept();//使用accept()阻塞等待客户请求
System.out.println("接收到客户端的访问");
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=" ";
while(line!=null&&!line.equals("bye"))
{
line=is.readLine();
System.out.println("Server:"+line);
}
is.close();
socket.close();
server.close();
}catch(IOException e){System.out.println("error:"+e);}
}
}
运行时有个先后顺序,要先运行服务器端的程序,再运行客户端的程序,下面是我程序的运行结果截图。
相关文章推荐
- Android客户端与PC服务器实现Socket通信(wifi)
- android的Socket编程---实现简单的服务器,并与客户端通信
- Android客户端与PC服务器实现Socket通信
- unity3d Android客户端与PC服务器实现Socket通信(wifi)
- Linux下通过socket通信实现客户端向服务器发送文件
- 主题:在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
- 在Android上实现SSL握手,实现服务器和客户端之间Socket交互
- 使用C语言socket实现windows pc与ftp服务器通信---socket实现ftp客户端
- 运用socket实现简单的服务器客户端交互
- unity3d Android客户端与PC服务器实现Socket通信(wifi)
- Android客户端与PC服务器实现Socket通信(wifi)
- java 通过 socket 实现 服务器和客户端的通信 TCP
- Java 利用套接字Socket实现简单的服务器与客户端通信
- python socket 实现服务器/客户端通信
- 在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
- unity3d Android客户端与PC服务器实现Socket通信(wifi)
- unity3d Android客户端与PC服务器实现Socket通信(wifi)
- 在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
- Android客户端与PC服务器实现Socket通信(wifi)
- 基于非阻塞socket的多线程服务器的实现------一个服务器如何与多个客户端进行通信?