Socket套接字
来源:互联网 发布:乾隆 盖章 知乎 编辑:程序博客网 时间:2024/06/11 20:28
Java语言在实现C/S模式中,套接字分为两类:
在Server端,ServerSocket类支持底层的网络通信;
在Client端,Socket类支持网络的底层通信。
Socket
Socket sc=newSocket (ip,port)://建立socket
获取键盘输入
sc.getOutputStream(); //获取sc的
public class SenTcp_v1{
public static final String IP="192.168.38.43";//ip地址
public static final int PORT=9875;//端口号
public Socket sk;//
public BufferedReader br;//键盘输入流
public BufferedWriter bw;
public static void main(String[] args) {
SenTcp_v1 st=new SenTcp_v1();
st.send();
}
/**
* 客户端
*/
public void send(){
try {
sk=new Socket(IP,PORT);
System.out.println("输入消息");
systemIn(); // 键盘录入
buf(); // 初始化缓冲输出流
sendMessage();//写入信息
close(); //关闭流
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 从键盘获取信息
*/
public void systemIn(){
br=new BufferedReader(new InputStreamReader(System.in));
}
/**
* 初始化缓冲输出流
*/
public void buf(){
try {
bw=new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 循环发送信息
*/
public void sendMessage(){
String line=null;
try {
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
System.out.println("发送成功!");
bw.flush();
if(line.equals("over")){
System.out.println("客户端程序结束!");
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 关闭流
*/
public void close(){
try {
bw.close();
sk.close();
} catch (IOException e) {
e.printStackTrace();
}
}
server
ServerSocket ss=new ServerSocket(port); //建立serversocket
Socket sk=ss.accept();//开始监听指定端口
public class ReceiveTcp_v1 {
public ServerSocket ss;
public Socket socket;
public BufferedReader is;
public static void main(String[] args) {
ReceiveTcp_v1 tr=new ReceiveTcp_v1();
tr.receive();
}
/**
* 服务端
*/
public void receive() {
startServerSocket();//启东服务端 ,开始监听
bur(); // 初始化缓冲输入流
receivemasage(); //读取信息
close(); //关闭 流
}
/**
* 启动服务端 ,并开始监听
*/
public void startServerSocket() {
try {
ss = new ServerSocket(9875);
System.out.println("监听中!");
socket = ss.accept();
System.out.println("建立成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 初始化缓冲输入流
*/
public void bur() {
try {
is = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 输出信息 ,并判断
*/
public void receivemasage(){
String line = null;
while (true) {
try {
line = is.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (line.equals("over")) {
System.out.println("服务端程序结束!");
break;
}
System.out.println(line);
}
}
/**
* 关闭流
*/
public void close() {
try {
is.close();
socket.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
- Socket(套接字)
- socket 套接字
- Socket(套接字)
- 套接字(Socket)定义
- 18.3 Socket套接字
- SOCKET套接字
- socket套接字
- Java 套接字(Socket)
- 什么是套接字(Socket)?
- 套接字(Socket)
- Socket套接字
- 关于 socket 套接字
- 套接字(Socket)
- Java套接字(Socket)
- Socket(套接字)
- Socket套接字
- socket--套接字通信
- 什么是套接字Socket
- Linux 使用tar命令打包/解压文件
- 保存信息--SharePreferences
- Linux(Centos)之安装tomcat并且部署Java Web项目
- 大数相乘算法
- 将数据库中的纵向排列数据改写成横向排列数据
- Socket套接字
- ubuntu使用-界面美化
- python使用json web token (jwt)实现http api的加密传输
- 170822 WarGames-Natas(27-28)
- Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势
- Python学习笔记(0)——编程0基础数据分析进阶之路
- HTML5的新增和废弃的各个类型
- iOSwebview内容消失
- bzoj 4973: 比特战争 并查集