现在的位置: 首页 > 综合 > 正文

网络编程

2013年10月19日 ⁄ 综合 ⁄ 共 1560字 ⁄ 字号 评论关闭


1,什么是Socket

Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。

2,Socket通讯的过程

Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。

对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

  (1) 创建Socket;

  (2) 打开连接到Socket的输入/出流;

  (3) 按照一定的协议对Socket进行读/写操作;

  (4) 关闭Socket.

3,创建socket例子

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPDemo {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
       // 1 创建socket服务
        DatagramSocket ds = new DatagramSocket();
        //2把数据封装
        byte [] buffer = "bo ke zhong guo".getBytes();
        DatagramPacket dp = new DatagramPacket(buffer, buffer.length, InetAddress.getByName("127.0.0.1") , 10000);
        //3发送
        ds.send(dp);
        //4关闭资源
        ds.close();
    }
    
}

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPService {
     public static void main(String[] args) throws Exception{
         //创建socket服务
        DatagramSocket ds = new DatagramSocket(10000);
        //用于存储数据
        byte [] buffer = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buffer,buffer.length);
        //通过socket服务的receive方法保存数据包
        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+":"+Data+":"+port);
        ds.close();
    }
}





抱歉!评论已关闭.