I just ran your code, through Internet, and works fine. I used type 1 and 2 to test. Firstly, I recommend you to remove the line binding port in Client. Like this:
elif type == "2":
ip = "79.222.132.25"
# sock.bind(("192.168.2.102",port+1))
sock.connect((ip,port))
print("Socket: "+str(sock.getsockname()))
print("Connected to: "+str(sock.getpeername()))
while True:
input = raw_input("Send:")
data = pickle.dumps((input))
sock.send(data)
Because usually a client don't need to explicitly bind port -- when calling sock.connect(), system will automatically assign a random port to your socket.
Then let's solve your problem. Your code is correct, so there must be something wrong with the Internet, more likely the server. If your server is working under a NAT gateway or an router, any incoming connection will be refused by your gateway. An easy way to test your server's status, is typing ipconfig (or ifconfig in Linux) in command line prompt to check whether the local IP address is the public Internet address. Public Internet address can retrieve from this website: whatismyipaddress.com.
This is the most possible problem you may encounter. An easiest way to make server's networking environment correct, is to find a real server, which has static public IP, and without any NAT gateway. Or just rent a VPS to test your code.
Thanks.