add socket function