资源简介
使用Socket传输视频

代码片段和文件信息
package com.zzk;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
public class ClientSocketframe extends Jframe {
private JTextArea ta_info;
private File file = null;// 声明所选择视频的File对象
private JTextField tf_path;
private DataInputStream in = null; // 创建流对象
private DataOutputStream out = null; // 创建流对象
private Socket socket; // 声明Socket对象
private long lengths = -1;// 图片文件的大小
private String fileName = null;
private void connect() { // 连接套接字方法
ta_info.append(“尝试连接......\n“); // 文本域中信息信息
try { // 捕捉异常
socket = new Socket(“192.168.1.193“ 1978); // 实例化Socket对象
ta_info.append(“完成连接。\n“); // 文本域中提示信息
while (true) {
if (socket != null && !socket.isClosed()) {
out = new DataOutputStream(socket.getOutputStream());// 获得输出流对象
in = new DataInputStream(socket.getInputStream());// 获得输入流对象
getServerInfo();// 调用getServerInfo()方法
} else {
socket = new Socket(“192.168.1.193“ 1978); // 实例化Socket对象
}
}
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
public static void main(String[] args) { // 主方法
ClientSocketframe clien = new ClientSocketframe(); // 创建本例对象
clien.setVisible(true); // 将窗体显示
clien.connect(); // 调用连接方法
}
private void getServerInfo() {
try {
String name = in.readUTF();// 读取文件名
long lengths = in.readLong();// 读取文件的长度
byte[] bt = new byte[(int) lengths];// 创建字节数组
for (int i = 0; i < bt.length; i++) {
bt[i] = in.readByte();// 读取字节信息并存储到字节数组
}
FileDialog dialog = new FileDialog(ClientSocketframe.this “保存“);// 创建对话框
dialog.setMode(FileDialog.SAVE);// 设置对话框为保存对话框
dialog.setFile(name);
dialog.setVisible(true);// 显示保存对话框
String path = dialog.getDirectory();// 获得文件的保存路径
String newFileName = dialog.getFile();// 获得保存的文件名
if (path == null || newFileName == null) {
return;
}
String pathAndName = path + “
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2010-10-26 16:10 318\.classpath
文件 379 2011-01-04 14:16 318\.project
文件 629 2010-10-26 16:10 318\.settings\org.eclipse.jdt.core.prefs
文件 1883 2011-01-29 16:52 318\bin\com\zzk\ClientSocketfr
文件 2184 2011-01-29 16:52 318\bin\com\zzk\ClientSocketfr
文件 5952 2011-01-29 16:52 318\bin\com\zzk\ClientSocketfr
文件 1891 2011-01-28 13:36 318\bin\com\zzk\ServerSocketfr
文件 2192 2011-01-28 13:36 318\bin\com\zzk\ServerSocketfr
文件 6122 2011-01-28 13:36 318\bin\com\zzk\ServerSocketfr
文件 7023 2011-01-29 16:52 318\src\com\zzk\ClientSocketfr
文件 7088 2010-10-27 14:05 318\src\com\zzk\ServerSocketfr
目录 0 2011-01-28 13:36 318\bin\com\zzk
目录 0 2011-01-25 14:12 318\src\com\zzk
目录 0 2011-01-28 13:36 318\bin\com
目录 0 2011-01-25 14:12 318\src\com
目录 0 2011-01-25 14:12 318\.settings
目录 0 2011-01-28 13:36 318\bin
目录 0 2011-01-25 14:12 318\src
目录 0 2011-01-25 14:12 318
----------- --------- ---------- ----- ----
35644 19
- 上一篇:使用Socket传输音频
- 下一篇:indy9 ssl使用的两个动态库
相关资源
- SpringBoot+H2+mybatis-plus59130
- 登录注册界面.zip48872
- Scratch 吃豆人追踪者.sb3
- labview编程软件滤波器以及编写程序设
- Scratch 变脸(将人物图片变成各种各样
- 数字华容道
- SSM+Shiro+redis实现单点登陆
- jstl-api-1.2和jstl-impl-1.2
- UNIX/LINUX编程实践教程的源码
- Windows异步套接字网络编程
- 编程实现二维DCT变换
- MT4编程 EA模板
- 基于MVC模式的会员管理系统
- 音乐代码转换软件 单片机编程时用
- PLC上位机编程软件
- 国内一家大型软件公司内部的正规软
- 仿windows记事本
- 一种红外遥控编解码仿真
- 用Socket编程实现FTP
- S7-200模拟量编程实例
- GUI银行管理系统
- 防火墙编程-Visual C 网络通信开发
- 超市收银系统eclipse access大学课程设计
- 数据采集系统——ADC0808的应用,单片
- MFC网络编程实例
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 模拟ATM柜员机系统--连接数据库
- ADC0809数字电压表 LCD1602显示 汇编程序
- 108种编程中常见的问题及解决办法
评论
共有 条评论