注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

古城风~~~

竹密无妨溪水过,天高不碍白云飞。这天下总有一份是属于我古城的天地!

 
 
 

日志

 
 

网络编程  

2008-08-22 20:34:47|  分类: java/jsp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

可以查看java.net包;

与UDP有关的在java.net.DatagramSocket(连接)和java.net.DatagramPacket(数据包)里;

与TCP有关的在java.net.ServerSocke(服务器端)t和java.net.Socket(服务器端和客户端都有)里;

 (1)TCP实例:

 

package com.gucheng.socketclass;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
//创建多线程的服务器
public class SocketTCP extends Thread {

 private Socket s;
 SocketTCP(Socket s){
  this.s=s;
 }
 
 public void run(){
  OutputStream os;
  try {
   os = s.getOutputStream();
   InputStream is=s.getInputStream();
   os.write("server".getBytes());
   byte[] buf=new byte[100];
   int len=is.read(buf);
   System.out.println(new String(buf,0,len));
   os.close();
   is.close();
   s.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
 }
 
 public static void main(String[] args) {
  if(args.length>0){
   //传入参数代表服务端
   server();
  }else{
      //不传入参数代表客户端
   client();
  }
 }
 
 public static void server(){
  try {
   //1,创建ServerSocket
   ServerSocket ss=new ServerSocket(6000);
   //2,添加accept()监听
   //Socket s=ss.accept();
   while(true){
    Socket s=ss.accept();
    new SocketTCP(s).start();
   }
   /*
   OutputStream os=s.getOutputStream();
   InputStream is=s.getInputStream();
   os.write("server".getBytes());
   byte[] buf=new byte[100];
   int len=is.read(buf);
   System.out.println(new String(buf,0,len));
   os.close();
   is.close();
   */
   
   //s.close();
   //ss.close();
   
  } catch (IOException e) {
   e.printStackTrace();
  }
  
 }
 
 public static void client(){
  try {
   Socket s=new Socket(InetAddress.getByName(null),6000);
   OutputStream os=s.getOutputStream();
   InputStream is=s.getInputStream();
   byte[] buf=new byte[100];
   int len=is.read(buf);
   System.out.println(new String(buf,0,len));
   os.write("hello,I am client!".getBytes());
   os.close();
   is.close();
   s.close();
   
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
  
  
 }

}


 

(2)UDP实例:

 

package com.gucheng.socketclass;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class SocketUDP {

 public static void main(String[] args) {
  if(args.length>0){
   recv();
  }else{
   send();
  }

 }
 
 public static void recv(){
  try {
   DatagramSocket ds=new DatagramSocket(6000);
   byte[] buf=new byte[100];
   DatagramPacket dp=new DatagramPacket(buf, 100);
   ds.receive(dp);
   System.out.println(new String(buf,0,dp.getLength()));
   String str=new String("welcome you!");
   DatagramPacket dpsend=new DatagramPacket(str.getBytes(), str.length(), dp.getAddress(), dp.getPort());
   ds.send(dpsend);
   ds.close();
  } catch (SocketException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
 }
 
 public static void send(){
  try {
   DatagramSocket ds=new DatagramSocket();
   String str=new String("I am gucheng!");
   DatagramPacket dp=new DatagramPacket(str.getBytes(), str.length(), InetAddress.getLocalHost(), 6000);
   ds.send(dp);
   byte[] buf=new byte[100];
   DatagramPacket dprecv=new DatagramPacket(buf, 100);
   ds.receive(dprecv);
   System.out.println(new String(buf,0,dprecv.getLength()));
   ds.close();
  } catch (SocketException e) {
   e.printStackTrace();
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}

  评论这张
 
阅读(324)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017