 
 public class UDPClient {
 
-  public let socket: UDPSendingSocket
-
-  public init(withSocket socket: UDPSendingSocket) {
+  public let socket: Socket
+
+  public init(withSocket socket: Socket) {
     self.socket = socket
   }
 
   public convenience init?(localPort: Int, remotePort: Int) {
     guard
-      let localIP = try? IP(port: localPort),
-      let remoteIP = try? IP(port: remotePort),
-      let socket = try? UDPSocket(ip: localIP).sending(to: remoteIP)
+      let socket = try? Socket.create(family: .inet, type: .datagram, proto: .udp)
     else {
       return nil
     }

import UDP


// MARK: OSC packet I/O

extension UDPClient : PacketSender {
  
  public var available : Bool {
    return socket.isActive
  }
  
  public func send(packet: OSCConvertible) {
    // FIXME - send packet.oscValue
  }
}

