您的位置:首页 > 理论基础 > 计算机网络

黑马程序员+对Java中网络编程的总结

2015-05-18 21:16 531 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

在Java的基础学习中,感觉网络编程方面比较乱,对此用思维导图及代码做了一些归纳和总结。由于个人能力有限,有错误误或不完善的地方,敬请指正,谢谢!


总体概述




[b]网络传输的要素
[/b]
[b]


[/b]

关于UDP传输的总结




  


关于TCP传输的总结


 


关于Socket的介绍





网络编程举例
1:UDP发送端和接收端

class UDPReceive {

public static void main(String[] args) {
// TODO Auto-generated method stub
try {
receive();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void receive() throws Exception{
DatagramSocket ds = new DatagramSocket(12000);
while(true){
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
int  port = dp.getPort();
System.out.println("ip:"+ip);
System.out.println("data:"+data);
System.out.println("port:"+port);}}
}
public  class UDPSend {

public static void main(String[] args) {
// TODO Auto-generated method stub
try {
send();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static void send() throws Exception{
//建立UDPSocket服务。
DatagramSocket ds = new DatagramSocket();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line=null;
while(true){
line =br.readLine();
if(line==null)
break;
if("over".equals(line))
break;
//提供数据,打包。
byte[] buf = line.getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),12000);
//数据发送。
ds.send(dp);}
//关闭资源
ds.close();
br.close();
}

}


2:TCP客户端和服务端:
public class ChartClient {

/**
* @param args
* @throws Exception
* @throws UnknownHostException
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Socket s = new Socket("127.0.0.1",10022);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("d:\\1.jpg"));
BufferedOutputStream out=new BufferedOutputStream(s.getOutputStream());
BufferedInputStream in = new BufferedInputStream(s.getInputStream());
byte[] buf = new byte[1024];
int len=0;
while((len=bis.read(buf))!=-1){
out.write(buf, 0, len);
}
s.shutdownOutput();//告诉服务端数据已写完
byte[] bufin = new byte[1024];
int num = in.read(bufin);
System.out.println(new String(bufin,0,num));
bis.close();
in.close();
}


public class ChartServer {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(10022);
Socket s=ss.accept();
BufferedOutputStream out = new BufferedOutputStream(s.getOutputStream());
BufferedInputStream in = new BufferedInputStream(s.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\chart1.jpg"));
byte[] buf=new byte[1024];
int len = 0;
while((len=in.read(buf))!=-1){
bos.write(buf, 0, len);
}
out.write("上传成功!".getBytes());
ss.close();
out.close();
in.close();
bos.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息