简单的Java C/S模式
来源:互联网 发布:西游记 版本 知乎 编辑:程序博客网 时间:2024/04/30 19:25
简单的Java C/S模式
(TCP协议下C/S模式)
TCP通信原理流程
客户端:
a、用服务器的IP地址和端口号实例化Socket对象;
b、调用connect方法,连接到服务器上;
c、将发送到服务器的I/O流填充到I/O对象里,比如BufferedReader/PrintWriter;
d、利用Socket提供的getInputStream和getOutputStream方法,通过I/O流对象,向服务器发送数据流;
e、通信完成后,关闭打开的I/O对象和Socket。
服务器:
a、 用一个端口实例化一个ServerSocket对象
b、 调用ServerSocket的accept(public Socket accept())方法,开始监听连接从端口上发来的连接请求;
c、 利用accept方法返回的客户端的Socket对象,进行读写I/O的操作;
d、 通信完成后,关闭打开的流和Socket对象。
eg:(先运行服务器端,再运行客户端)
客户端:
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;
/**
* @param args
* @throws UnknownHostException
*/
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);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println("Hello Server,I am "+clientName);
String str = in.readLine();
System.out.println(str+"yuy");
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 {
/**
* @param args
*/
//设置端口号
public static int portNo = 3333;
public static void main(String[] args) throws IOException {
//根据端口号,初始化ServerSocket类
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);
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();
//如果接受到byebye字符串,退出循环
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
socket.close();
s.close();
}
}
}
- 简单的Java C/S模式
- socket编程(一)最简单的c/s模式
- 实现一个c/s模式的简单木马
- Android/Socket编程 简单C/S模式
- 【Java网络编程一】一个简单的c/s程序
- java 关于socket编程实现简单的c/s连接
- java编写的类似问卷调查 C/S模式
- 基于java开发c/s模式的数据库应用程序
- Java NIO实现的C/S模式多人聊天工具
- C/S,B/S模式的区别
- 简单的C/S聊天室
- C/S 模式的前途
- java----------C/S编程-----简单聊天程序
- Java网络简单C/S编程
- 基于winsock的c/s模式的简单的文件传输项目报告书
- java远程操作数据库,c/s模式
- 基于TCP连接的C S模式的最简单模型代码
- B/S模式和C/S模式的对比
- Teamcenter8---开始1
- 在windows 下配置Eclipse c++开发环境
- Myeclipse使用中内存溢出的问题
- K-means clustering 介绍论文
- ASP.Net TextBox控件只允许输入数字(转)
- 简单的Java C/S模式
- PowerShell 2.0 远程管理之启用和执行命令
- window.frameElement
- vim 使用备忘
- java collections framework -----List,Set,Map总结
- Visual Studio 2010与Visual Studio 2008的区别
- vim script简介
- 我的VIM配置文件
- JAVA 函数 Math API