黑马程序员——网络编程之CTP传输

TCP传输

Socket和ServerSocket,实现了两台机器间的套接字端点,绑定本机IP地址。建立客户端和服务端,客户端对应的对象是Socket,服务端对应的对象是ServerSocket。

//客户端部分

public class ClientA {

private String filePath ;

public String
getFilePath() {return filePath;}

public void setFilePath(String filePath ) { this. filePath = filePath;}

public String
getHost() {return host;}

public void setHost(String host ) { this. host = host;}

public int getPort() {return port; }

public void setPort(int port) {this.port = port ;}

private String host ;

private int port;

public static void main (String[] args) {

// TODO Auto-generated method stub

ClientA ca=new ClientA();

ca.setHost ("127.0.0.1") ;

ca.setPort (9527) ;

ca.setFilePath ("d:\\") ;

ca.upLoad ("N1.mp3") ;

}

//上传方法

private void upLoad(String fileName ) {

// TODO Auto-generated method stub

Socket
s =null;

try {

s =new Socket(host ,port );

File
fi =new File(filePath +fileName );

System .out.println( "文件大小:" +fi .length ());

FileInputStream
fis =new FileInputStream(new File(filePath+fileName)) ;

OutputStream
os =s .getOutputStream ();

int len;

byte[] buff =new byte[ 1024];

while((len =fis .read (buff)) >0 ){os.write( buff, 0, len);}

s .shutdownOutput ();

//获取服务器发来的消息。三次握手规则

InputStream
ip =s .getInputStream ();

byte[] buffser =new byte[ 1024];

System .out.println( new String(buffser,0,ip.read( buffser)));

//关闭资源

fis .close ();

os .close ();

ip .close ();

s .close ();

catch (Exception e ) {

// TODO: handle exception

e .printStackTrace ();

}

}

}

//服务端部分,用了服务端继承Thread的办法

public class ServerA extends Thread {

public static void main (String[] args) {

// TODO Auto-generated method stub

ServerA
sa =new ServerA();

sa .start ();

}

@Override

public void run(){

try {

ServerSocket ss=new ServerSocket (9527) ;

Socket
s =ss .accept ();

//养成良好习惯,获取对方 ip并记录下来

String
ip =s .getInetAddress (). getHostAddress();

System .out.println( ip+ ">>>conected");

File
file =new File(ip +".mp3" );

//将客户端上传的资料写到存储区

FileOutputStream
fis =new FileOutputStream(new File("d:\\"+ file));

InputStream
ips =s .getInputStream ();

int len;

byte[] buff =new byte[ 1024];

while((len =ips .read (buff)) !=-1 )

fis .write (buff,0,len) ;

//通知客户端,上传成功

OutputStream
ops =s .getOutputStream ();

ops .write ("成功上传". getBytes());

//养成随手关闭资源的习惯

ops .close ();

fis .close ();

ips .close ();

s .close ();

catch (Exception e ) {

// TODO: handle exception

e .printStackTrace ();

}

}

}

黑马程序员——网络编程之CTP传输,布布扣,bubuko.com

时间: 2024-12-21 20:08:25

黑马程序员——网络编程之CTP传输的相关文章

黑马程序员—网络编程之UDP

--Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- udp第一讲 ds=new DatagramSocket()即可做发送,也可做接收 字节数组byte [] by=new byte[1024]; 数据包 DatagramPacket dp=new DatagramPacket(by,by.length,InetAddress.getByName("localhost"),8080); DatagramPacket dp2=new DatagramPa

黑马程序员—网络编程之TCP(基础篇)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- 服务端:ServerSocket ss=new ServerSocket(10010); 获取Socket对象 Socket s=ss.accept(); 通过Socket对象获取输入输出流发送消息 客服端:Socket s=new Socket("localhost",10010); 通过Socket对象获取输入输出流发送消息 一 package com.itheima.cn; import jav

黑马程序员—网络编程TCP(传输层完整篇)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- Socket 要注意的是 流是否写完,应为有阻塞式的方法(read) s.shutdownoutput(); ServerSocket 保证服务器的持续性 s=ss.accept(); Socket对象要循环 为保证服务能多人使用,要开启线程. 一 package com.itheima.org; import java.io.File; import java.io.FileInputStream; impo

黑马程序员——Java网络编程之UDP传输

网络编程 网络模型 通讯要素:InetAddress(对象):ip地址,网络中设备的标识,不可记忆,可用主机名,本地回环地址:127.0.0.1主机名localhost 端口号 传输协议:UDP,将数据的源及目的封装成数据包中,不需要建立连接,每个数据包的大小限制在64K内,无连接,是不可靠协议,不需要建立连接,速度快.力求速度,不求数据的准确性.比如聊天软件,网络会议. TCP:建立连接,形成传输数据的通道,在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议,必须建立连接效率稍低. S

黑马程序员——网络编程篇

------- android培训.java培训.期待与您交流! ---------- 概述   1.网络模型        (1).OSI参考模型        (2).TCP/IP参考模型   2.网络通讯要素         (1).IP地址        (2).端口号         (3).传输协议    3.过程        1,找到对方IP. 2,数据要发送到对方指定的应用程序上.为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识. 为了方便称呼这个数据,叫做端口(逻

黑马程序员 网络编程 UDP与TCP

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ----------------------/* 网络编程分为两种模式:TCP和UDP 连接互联网的计算机以亿计,为了唯一的标识出每台电脑,互联网就给每台电脑分配一个 唯一独立的ip地址,通过这个ip地址就可以进行计算机之间的数据交换 我们计算机交换的数据功能我们在java中把它封住成一个叫Socket的类, 简称套接字, 端口号:计算机数据的交换一般都是电脑上的程序来维护的,而电脑上又运

黑马程序员——网络编程(上篇)

------ >Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言是第一个完全融入网络的语言,Java语言之所以适合编写网络应用程序有诸多有点.所有连入Internet的终端设备(包括计算机.PDA.打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址.现在Internet上的IP地址大多由四个字节组成,这种IP地址叫做IPv4.除了这种由四个字节组成的IP,在Internet上还存在一种IP,这种IP由16个字节组成,叫做I

黑马程序员——网络编程

1.网络通讯要素:(1)找到对方的IP地址(2)数据要发送到对方指定的应用程序上.为了标识这些应用程序,给小河蟹应用程序都用数字进行标识.为了方便称呼这些数字,称为端口(3)定义通信规则,这个规则称为协议,国际组织定义了通用协议TCP/IP 2.网络模型:应用层:HTTP,FTP等传输层:UDP,TCP等网际层:IP 3.UDP传输和TCP传输的区别:    UDP:将数据源和目的封装成数据包,不需要建立连接    每个数据报大小限制在64k内    因为无连接,是不可靠协议    不需要建立连

黑马程序员---网络编程之文件上传

------- android培训.java培训.期待与您交流! ----------. 网络编程 (1)用编程语言来实现计算机的资源共享和信息传递. 计算机网络:多台独立的计算机用网络通信设备连接起来的网络.实现资源共享和数据传递. (2)网络通信的三要素 A:IP地址 计算机在网络中的唯一标识. 现在使用的是:"点分十进制" B:端口 应用程序的的标记. C:协议 通信的规则. UDP:不建立连接,数据打包传输,数据有限制,数据不可靠,速度快. TCP:建立连接,数据无限制,数据可