We are going to generate all IPs that I am going to select and start packeting all data and send them over tcp to the other IP I Selected before then The other device must open the connection to start recieving ..
#### How to Use : --- #### First you will find your IP in a label in the end of the Program #### --------------------------------------------------------------- #### To SEND data :- #### You Start First with Reciever Side .. #### Start program There .. #### By Import Name of the file you will want to recive .. Like "Omar.mp3 " or " Drmicrosoft.jpg " #### #### and click receive .. #### #### Then Go to Sender Side #### By Import name File or Its Path .. and Choose The reciever IP .. From the Combo Box #### and Click Send .. #### #### The file will send #### #### In the reciever Side You will Find the file in the Program Folder .. #### Version 1.0.0 #### Open Source #### Free to Use #### Drmicrosoft #### To work okay .. put in one folder the .glade file and the .py file .. #### Thanks from gi.repository import Gtk import sys import socket import pygst pygst.require("0.10") import gst import os import fcntl import struct s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) def sendd (sssss) : #xc = f1.get_title() msg = e1.get_text() com = x1.get_active_text() #l1.set_text(msg) print msg print com sends(com,msg) def recivv (sssss) : #xc = f1.get_title() msg = e1.get_text() com = get_ip_address("wlan0") #l1.set_text(msg) print msg print com recivs(com,msg) def get_ip_address(ifname): print ("getiing ip adress") q = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( q.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24]) def initiaal_combo(z) : i=0 while 1 : if i <=255 : x1.append_text("{}{}".format("192.168.1.", i)) i=i+1 print "{}{}".format("192.168.1.", i) else : break def ints (ssss) : l1.set_text(get_ip_address("wlan0")) initiaal_combo(1) #pop_up("Drmicrosoft","Welcome to File Share") x = Gtk.Builder() x.add_from_file("1.glade") def sends (ip , files) : s = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name port = 12345 # Reserve a port for your service. s.connect((ip, port)) #s.send("Hello server!") f = open(files,'rb') print 'Sending...' l = f.read(1024) while (l): print 'Sending...' s.send(l) l = f.read(1024) s.shutdown(socket.SHUT_WR) f.close() print "Done Sending" print s.recv(1024) s.close # Close the socket when done def recivs (ip , files) : s = socket.socket() # Create a socket object #host = socket.gethostname() # Get local machine name host = ip # Get local machine name port = 12345 # Reserve a port for your service. s.bind((host, port)) # Bind to the port f = open(files,'wb') s.listen(5) # Now wait for client connection. while True: c, addr = s.accept() # Establish connection with client. print 'Got connection from', addr print "Receiving..." l = c.recv(1024) while (l): print "Receiving..." f.write(l) l = c.recv(1024) f.close() print "Done Receiving" c.send('Thank you for connecting') c.close() # Close the connection b1 = x.get_object("button1") b3 = x.get_object("button5") b2 = x.get_object("button4") e1 = x.get_object("entry1") l1 = x.get_object("label3") x1 = x.get_object("comboboxtext1") b1.connect("clicked", Gtk.main_quit) b2.connect("clicked", sendd) b3.connect("clicked", recivv) ints(1) window = x.get_object("window1") window.show_all() Gtk.main()
<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.0 --> <object class="GtkWindow" id="window1"> <property name="can_focus">False</property> <child> <object class="GtkBox" id="box1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">out</property> <child> <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkLabel" id="label2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Transfer Data</property> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Drmicrosoft</property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkGrid" id="grid1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkBox" id="box2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> <property name="hexpand">True</property> <property name="orientation">vertical</property> <child> <object class="GtkButton" id="button5"> <property name="label" translatable="yes">Recieve</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="receives_default">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="button4"> <property name="label" translatable="yes">Send</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="receives_default">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkButton" id="button1"> <property name="label" translatable="yes">Exit</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="receives_default">True</property> <property name="hexpand">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="left_attach">2</property> <property name="top_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> <child> <object class="GtkComboBoxText" id="comboboxtext1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> <property name="hexpand">True</property> <property name="entry_text_column">0</property> <property name="id_column">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> <child> <object class="GtkEntry" id="entry1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="invisible_char">•</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkBox" id="box3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">IP</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">2015 Drmicrosoft, LLC ©</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">end</property> <property name="position">2</property> </packing> </child> </object> </child> </object> <object class="GtkWindow" id="window2"> <property name="can_focus">False</property> <child> <object class="GtkBox" id="box4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> <object class="GtkAlignment" id="alignment2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Alert</property> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Drmicrosoft</property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="label7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Want to recieve data ??</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkGrid" id="grid2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkButton" id="button2"> <property name="label" translatable="yes">Ok</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="receives_default">True</property> <property name="halign">center</property> <property name="valign">center</property> <property name="hexpand">True</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> <child> <object class="GtkButton" id="button3"> <property name="label" translatable="yes">Cancel</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="receives_default">True</property> <property name="halign">center</property> <property name="valign">center</property> <property name="hexpand">True</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">end</property> <property name="position">2</property> </packing> </child> </object> </child> </object> </interface>