Closing streams, sockets, etc. upon abrupt end of program..?
I'm trying to write a server that communicates with multiple clients that may come and go at random. Crossing that bridge when I get to it, but due to this need to constantly be making these sockets and breaking the links.. I can't be sure that, if a user closes my frame without using my supplied "Quit" button (which first calls a close method which closes any open sockets and IO streams), all those streams will be closed if the program is run again.
I've experimented with it, and if I close the window I have open using the X, or alt+f4, or something to that effect (Using windows, which I suppose is evident now.), I still have a process running, and it's still doing stuff, which I can see by my desktop flickering every time the client tells me that it can't detect a server, or visa versa.
Is there a method that is inherited by or included in the JFrame class that ensures when it mysteriously disappears, the method will be called first? This is a huge pain in the butt. Thanks.
WindowListener ???
Similar Messages
-
I was advised I needed an "extender" to stream Netflix, etc. through my newly purchased digital TV. Apple store advised me to buy Airport Express and choose WDS setting. When reading instructions on how to set up WDS it states cannot set up WDS with an 802.11n airport express, which is what they told me to purchase. How do I set up this Airport Express to extend my internet signal from my modem & airport to be able to stream internet capability to my TV?
I was advised I needed an "extender" to stream Netflix, etc. through my newly purchased digital TV. Apple store advised me to buy Airport Express and choose WDS setting. When reading instructions on how to set up WDS it states cannot set up WDS with an 802.11n airport express, which is what they told me to purchase. How do I set up this Airport Express to extend my internet signal from my modem & airport to be able to stream internet capability to my TV?
-
How the client to detect the server has closed the socket?
if the server closed the socket by an unnormal way, for example, closing the socket compulsively. Then the client will show the "IOException:java.net.SocketException: Connection reset" message,
how the client to avoid such an error message to the user/customer, I mean , what the client can deal with such a message?
where to put the dealing code?
try{ int receivedLength=in.read(receivedBytes);
}catch(SocketException e){
// put the code here? }
catch(IOException e){
}Do you know how to prove it---"a socket read should
always always always have a timeout";As ejp said (IMHO ...) it's his opinion and doesn't need proof. I respect his opinion, but I often write code that doesn't set this.
Instead I use 2 threads per connection, and don't care if the read thread goes to sleep, since I can still write. If you only have one thread per connection, you better ensure that the read will end in a relatively short amount of time, even if your partner decides it's time to go for lunch.
how the length of this timeout will be? That is a business decision, it all depends on the expected time between received messages and is application dependent.
is it a field of the socket?If you are using blocking mode sockets you set this with setSoTimeout. If you are using non blocking mode NIO you specify it on the select call, although the soTimeout should also work there, although I've never tried that. -
Need of closing the Socket to complete read at client
Hi all,
I have aproblem of reading a byte array from a socketconnection.
My code is work but there is a small issue.
Basically my problem is there is a need of closing the socket at the server to complete the reading of the byte array at client
following is the server code which write the bytearray.
ServerSocket serversocket = new ServerSocket(Integer.parseInt(resources.getString("PORT")));
Socket clientSocket = s.getServersocket().accept();
DataOutputStream dt = new DataOutputStream(clientSocket.getOutputStream());
dt.write(getImageasByteArray()); // getImageasByteArray returns a byte array
//clientSocket.close(); // if not close clientSocket reading of the byte array not worksAs I mentioned above if the clientSocket is not closed the reading of the byte not completed at the client.
client code which read the byte array
SocketConnection sock = (SocketConnection) Connector.open("socket://" + hostname);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream inputStream = sock.openInputStream();
int c = 0;
while ((c = inputStream.read()) != -1)
baos.write(c);
System.out.println("read complete"); // this read complete never execute if not clientSocket is closed at serverI can't close the clientSocket because there are several threads at server some reads incoming commands and some write based on the commands.
so please help me
thank YouThank You again for answering
my client is a j2me platform and it print this stackrace
my code
DataOutputStream dt = new DataOutputStream(clientSocket.getOutputStream());
dt.write(ImageUtil.getImageasByteArray(img).length);
dt.write(ImageUtil.getImageasByteArray(img)); //send byte array
DataInputStream in = new DataInputStream(sock.openInputStream()); // openInputStream not getinputStream
int length = in.readInt();
System.out.println("read length=" + length);
byte[] arr = new byte[length]; // read size
in.readFully(arr);
java.lang.NegativeArraySizeException
at net.chamika.mobility.client.CanvasKey.keyPressed(CanvasKey.java:90)
at javax.microedition.lcdui.Canvas.callKeyPressed(Canvas.java:1121)
at javax.microedition.lcdui.Display$DisplayAccessor.keyEvent(Display.java:2209)
at javax.microedition.lcdui.Display$DisplayManagerImpl.keyEvent(Display.java:2952)
at com.sun.midp.lcdui.DefaultEventHandler.keyEvent(DefaultEventHandler.java:249)
at com.sun.midp.lcdui.AutomatedEventHandler.keyEvent(AutomatedEventHandler.java:620)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(DefaultEventHandler.java:699)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(DefaultEventHandler.java:608)server ends arrays size as 5340
client read it as -587212545
Please help me. -
I am making an applescript for my modding tool for Minecraft. It used to use multiple apps and I am now trying to make one app for all the tasks.
Here is the code:
say "You are running iCraft version one point one for minecraft version 1.2.5"
display dialog "Which tool do you want to use?" buttons {"Mod Installer", "Backup", "Restore"} default button 3
set the button_pressed to the button returned of the result
if the button_pressed is "Mod Installer" then
do shell script "~/desktop/iCraft/iCraft.app/contents/re…
display dialog "Insert all mod files into the Mods folder."
display dialog "Have you inserted all Mod files into the Mods folder?" buttons {"Yes", "No"} default button 2
if the button_pressed is "Yes" then
do shell script "~/desktop/iCraft/iCraft.app/contents/re…
display dialog "Finished"
else
display dialog "Insert mod files into the Mods folder and restart iCraft.app."
end if
if the button_pressed is "Backup" then
display dialog "Are you sure you want to backup your Minecraft.jar in it's current state?" buttons {"Yes", "No"} default button 2
if the button_pressed is "Yes" then
do shell script "~/desktop/iCraft/iCraft.app/contents/re…
display dialog "Finished, find it in your Backups directory in the iCraft folder"
else
display dialog "Backup aborted"
end if
if the button_pressed is "Restore" then
display dialog "Are you sure you want to restore your Minecraft.jar with your backup?" buttons {"Yes", "No"} default button 2
if the button_pressed is "Yes" then
do shell script "~/desktop/iCraft/iCraft.app/resources/s…
else
display dialog "Restore aborted"
end if
end
When I try to compile/run it gives me Syntax Error: Expected end of line, etc. but found end of script.Your script got mangled when pasting it into your message, but the main problem looks like you are missing a bunch of end if statements. Unless your if statements are contained on one line, you need to terminate them with a matching end if statement - for example, the following are equivalent:
if someString is "whatever" then display dialog "foo"
if someString is "whatever" then
display dialog "foo"
end if -
"Expected end of line, etc. but found end of script." HELP!!
When I try to run my script, it say "(null.)" When I try to compile it or save it as an application, it says "Expected end of line, etc. but found end of script." HELP!!!
Here is my script:
display dialog "WARNING! a virus has been detected and the system is crashing" buttons {"shut down computor to preserve contents", "burn virus file"} default button 2
if the button returned of the result is "burn virus file" then
say "warning the virus has reacted to its deletion and has activated itself"
say "virus is now in control of the users computor"
say "if you try to stop the virus it will delete all user data"
tell application "Safari"
activate
open location "http://www.facebook.com"
open location "http://www.yahoo.com"
open location "http://www.gmail.com"
open location "http://www.youtube.com"
end tell
tell application "iTunes"
activate
play
end tell
tell application "iCal"
activate
end tell
tell application "Terminal"
activate
end tell
tell application "Finder"
quit
end tell
if the button returned of the result is "shut down computor to preserve contents" then
say "your computor will shut to protect your files."
say "shut down in t-3"
say "2."
say "1."
say "goodbye"
say "it appears that there is a problem"
say "the virus is starting to take over your system"
beep 17
display dialog "how DARE you try to delete me. I am now going to take over your computer." buttons {"**** YOU GET OUTTA MY COMPUTER", "OK, have fun!!"} default button "OK, have fun!!"
if the button returned of the result is "OK, have fun!!" then
say "thank you!!"
say "watch this!"
Tell application "iChat"
quit
end tell
Tell application "Finder"
quit
end tell
if the button returned of the result is "**** YOU GET OUTTA MY COMPUTER" then
say "That attitude will not be tollerated."
say "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo" using "Cellos"
display dialog "A virus has been detected going through your files. Would you like to try to stop this?" buttons {"OK"} default button "OK"
if the button returned of the result is "OK" then
beep 5
display dialog "there has been an error. Do you want to try to force quit?" buttons "Yes" default button "Yes"
if the button returned of the result is "Yes" then
say "Well, thats just too bad!"
beep 2
say "Sorry about that."
say "The virus has been purged from your system."
say "Your computer will now restart to make sure that all traces of the virus have been removed."
say "shut down in t-3"
say "2"
say "1"
say "goodbye"
tell application "Finder"
restart
end tell
end ifYou need to complete compound if statements with an end if - see the AppleScript Language Guide for a description of the various kinds of if statements.
Although I don't think it is going to do what you expect, your script would look something like:
<pre style="
font-family: Monaco, 'Courier New', Courier, monospace;
font-size: 10px;
font-weight: normal;
margin: 0px;
padding: 5px;
border: 1px solid #000000;
width: 720px; height: 340px;
color: #000000;
background-color: #DAFFB6;
overflow: auto;"
title="this text can be pasted into the AppleScript Editor">
display dialog "WARNING! a virus has been detected and the system is crashing" buttons {"shut down computor to preserve contents", "burn virus file"} default button 2
if the button returned of the result is "burn virus file" then
say "warning the virus has reacted to its deletion and has activated itself"
say "virus is now in control of the users computor"
say "if you try to stop the virus it will delete all user data"
tell application "Safari"
activate
open location "http://www.facebook.com"
open location "http://www.yahoo.com"
open location "http://www.gmail.com"
open location "http://www.youtube.com"
end tell
tell application "iTunes"
activate
play
end tell
tell application "iCal"
activate
end tell
tell application "Terminal"
activate
end tell
tell application "Finder"
quit
end tell
else if the button returned of the result is "shut down computor to preserve contents" then
say "your computor will shut to protect your files."
say "shut down in t-3"
say "2."
say "1."
say "goodbye"
say "it appears that there is a problem"
say "the virus is starting to take over your system"
beep 17
end if
display dialog "how DARE you try to delete me. I am now going to take over your computer." buttons {"**** YOU GET OUTTA MY COMPUTER", "OK, have fun!!"} default button "OK, have fun!!"
if the button returned of the result is "OK, have fun!!" then
say "thank you!!"
say "watch this!"
tell application "iChat"
quit
end tell
tell application "Finder"
quit
end tell
else if the button returned of the result is "**** YOU GET OUTTA MY COMPUTER" then
say "That attitude will not be tollerated."
say "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo" using "Cellos"
end if
display dialog "A virus has been detected going through your files. Would you like to try to stop this?" buttons {"OK"} default button "OK"
if the button returned of the result is "OK" then
beep 5
display dialog "there has been an error. Do you want to try to force quit?" buttons "Yes" default button "Yes"
else if the button returned of the result is "Yes" then
say "Well, thats just too bad!"
beep 2
say "Sorry about that."
say "The virus has been purged from your system."
say "Your computer will now restart to make sure that all traces of the virus have been removed."
say "shut down in t-3"
say "2"
say "1"
say "goodbye"
tell application "Finder"
restart
end tell
end if
</pre> -
Detecting unsent data when closing a socket
I'm currently using a non-blocking socket to send data to a remote server. Whenever the application detects that the connection has been closed remotely, it will close the local connection, however netstat reports that there is unsent data still in the TCP/IP buffers.
What I'd like to do is check within the application whether there is any unsent data at the time the socket is closed. I've read that SO_LINGER can be used in such circumstances and then checking the return code on closing the socket, but it's unclear whether this will work in non-blocking mode.Instead of closing the PrintWriter just flush it. Then do shutdownOutput, then close either the PrintWriter or the socket - you don't need to do both.
-
My 4s iPhone keeps abruptly ending my app and wanting to shut down..
My 4s iPhone keeps abruptly ending my apps and wants to shut down.
Hello Patty.debonis
Check out the Power/Battery section to resolve issues with your iPhone powering off.
iPhone: Hardware troubleshooting
http://support.apple.com/kb/ts2802
Regards,
-Norm G. -
How do you force DAQmx output to 0 at the end of program execution?
I am using a 6713 to generate an arbitrary analog waveform on its output. However, once the labview vi has finished execution, the output voltage from the 6713 does not go back to 0 V. I have tried to force it back to 0 V by appending a 0 V amplitude waveform to the end of the analog waveform to mixed results (if I give it thousands of points, it goes to 0, but if I make it a more reasonable 100 points, it doesn't). How can I force the output back to 0 V. I tried stopping the task, clearing it, and stopping it and then clearing it. None of those worked.
Any help would be greatly appreciated.
Attachments:
6713 Interface.vi 144 KBFirst, I have to ask, did you write this VI?
It is very hard to follow and has a lot of confusing structures in it. IN the middle area where a lot of the DAQmx functions are, the error wire loops around so much it is hard to tell what is happening in what order. To the lower left, an array is converted to a cluster, the cluster is unbundled, the individual elements are fed to a compound addition to get a single value. Why not just use a sum array function on the original array?
The stop button is fed to the Stop Sign function. This is Abort execution which is the same as hitting the red stop button at the top of the VI. It ends the execution of the VI right then and there and doesn't allow anything else to happen. Read the context help for that function. As someone else has said on the forum, "Using the Abort button is like using a tree to stop your car. It will stop it, but there might be consequences."
How is this VI being run? Is the Run Continuous button being used? My guess is yes because I don't see any While loops and the only thing the stop button does is end the program abruptly.
You will need to rethink your whole architecture. Stuff that needs to happen once should be set up before a while loop that has wires leading to the while loop or uses a flat sequence to make sure that it happens first. This is you program initialization.
Everything that happens repeatedly would be in the while loop. The front panel Stop button is what ends this loop.
Anything that has to happen before the program ends like closing out tasks happens after the while loop (either by wires for dataflow or in 3rd frame of a flat sequence structure. With this, you should be able to reset your tasks so they output a zero voltage from the analog outputs before the tasks are closed and the program ends naturally.
Appending a zero to the end of the waveform won't help because if the waveforms run continuously, it will restart back at the beginning.
I would highly recommend looking at the example VI's for DAQmx functions and taking the tutorials for Labview that are available on the NI website.
Message Edited by Ravens Fan on 02-23-2008 10:45 PM -
Socket not used and just hangs program?
Hi, I'm writing a server class and in it, I try to open a socketserver and a socket. However, I found that when the socket tries to open up, the program will just hang there. I think part of the problem is because eclipse is saying that my socket object is never used. Despite having this line: "socket = serverSocket.accept();" being executed. Can someone shed some light into what is causing this to not be used/hang?
package Server;
import java.io.IOException;
import java.net.*;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Server extends JFrame {
private JTextArea console;
private static ServerSocket serverSocket;
private static Socket socket;
public Server() {
super("Server");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
console = new JTextArea();
//opens the serverSocket
try {
serverSocket = new ServerSocket(5000);
System.out.println("serverSocket opened");
} catch (IOException e) {
e.printStackTrace();
//opens the socket
try {
socket = serverSocket.accept();
System.out.println("socket opened and didn't hang");
} catch (IOException e) {
e.printStackTrace();
console.setText("Awaiting connection...");
//finalize
this.add(console);
this.setSize(400, 300);
this.setVisible(true);
private static void closeAll()
//closes the socket
// try {
// socket.close();
// System.out.println("socket closed");
// } catch (IOException e) {
// e.printStackTrace();
//closes the serverSocket
try {
serverSocket.close();
System.out.println("serverSocket closed");
} catch (IOException e) {
e.printStackTrace();
public static void main( String args[]) {
Server serverWindow = new Server();
closeAll();
System.out.println("end");
}Hi, I'm writing a server class and in it, I try to open a socketserver and a socket.Why the socket?
However, I found that when the socket tries to open up, the program will just hang there.And it will do that until someone connects to your server.
I think part of the problem is because eclipse is saying that my socket object is never used.Is it really? I find that rather hard to believe.
The problem is that your socket is never used, by a client. So accept() blocks forever. What exactly did you expect?
The norm is to accept sockets in a loop in a separate thread. And process each accepted socket in another thread, per accepted socket. And to never do blocking I/O in the AWT event-dispatching thread. And not to have servers with GUIs as a matter of fact. And certainly never to have a single static socket variable BTW: this is evidence of very unclear thinking> Even the server socket should be an instance variable. -
1084: Syntax error: expecting rightbrace before end of program.
So I'm doing this basic coding thing to make an object "shoot" bullets. It's from a tutorial video. My code matches his exactly unless I'm missing a tiny detail. Basically the code looks like this:
package {
import flash.display.Sprite;
import flash.events.Event;
public class bullet extends Sprite {
private var sw:Number;
private var sh:Number;
private const _SPEED:int=-10;
private const _OFFSTAGE:int=-10;
public function bullet():void {
addEventListener(Event.ADDED_TO_STAGE,onadd);
private function onadd(e:Event):void {
sw=stage.stageWidth;
sh=stage.stageHeight;
addEventListener(Event.ENTER_FRAME,loop);
private function loop(e:Event):void {
if (y<_OFFSTAGE) {
removeEventListener(Event.ENTER_FRAME,loop);
parent.removeChild(this);
y-=_SPEED;
}public function removeListeners():void {
removeEventListener(Event.ENTER_FRAME,loop);
And the compiler error I'm getting says this:
Location:bullet.as line 31 1084: Syntax error: expecting rightbrace before end of program. Source: }
Location:bullet.as line 31 1084: Syntax error: expecting rightbrace before end of program. Source: }
And yes it does say it twice. What's going on?
The vid I'm learning from is this: http://autocad.spinelink.com/adobe-flash-cs4-game-tutorial-shooting.htmlYou are missing two closing curly braces at the bottom of the package declaration. You need to close the package itself and the class declaration inside.
package {
import flash.display.Sprite;
import flash.events.Event;
public class bullet extends Sprite {
private var sw:Number;
private var sh:Number;
private const _SPEED:int=-10;
private const _OFFSTAGE:int=-10;
public function bullet():void {
addEventListener(Event.ADDED_TO_STAGE,onadd);
private function onadd(e:Event):void {
sw=stage.stageWidth;
sh=stage.stageHeight;
addEventListener(Event.ENTER_FRAME,loop);
private function loop(e:Event):void {
if (y<_OFFSTAGE) {
removeEventListener(Event.ENTER_FRAME,loop);
parent.removeChild(this);
y-=_SPEED;
public function removeListeners():void {
removeEventListener(Event.ENTER_FRAME,loop); -
i know how to end a program via the use of System.exit(0); but if i add that just on its own it just closed the program right away, now dont get me wrong i know that will happen, but what i want to know is how would i build that into a loop where if the user selects yes then the program closes and if the user selects no then the program keeps running, i know this will be done with a loop. I just dont know how to build it into a loop, plz help me out the packages im using are: import java.awt.*;
import hsa.Console;> i know how to end a program via the use of
System.exit(0); but if i add that just on its own it
t just closed the program right away, now dont get me
wrong i know that will happen, but what i want to
know is how would i build that into a loop where if
the user selects yes then the program closes and if
the user selects no then the program keeps running, i
know this will be done with a loop. I just dont know
how to build it into a loop, plz help me out the
packages im using are: import java.awt.*;
import hsa.Console;
You don't need the awt-package for it.
Also keep in mind that people don't know what this Console Object is; it's not in the standard java-packages. Here's a small example:
import hsa.Console;
public class TestWhileLoop
static Console c;
public static void main (String[] args)
c = new Console();
String entered = "";
while(entered.equalsIgnoreCase("q") == false) {
c.print("Please enter a String (or 'q' to quit): ");
entered = c.readString();
c.println("> you entered: "+entered);
System.exit(0);
} -
Scene 1, Layer 'actions', Frame 1, Line 664: 1087: Syntax
error: extra characters found after end of program.
I am new to importing classes and I have been practicing
making a photo gallery. I am stuck and I want to know if someone
can help me with the error I am getting.
If it is convenient, you can download and test my .zip at
www.dhtmlguy.freeservers.com
Thanks in advance!thanks...the small stuff gets me every time.
-
Error 1087 extra characters found after end of program.
Why am I getting the "error 1087 extra characters found after end of program with this code".
If (counter == 1) {
Next_btn.addEventListener(MouseEvent.CLICK,KMT1);
else {
Next_btn.addEventListener(MouseEvent.CLICK,KMT1);
function KMT1(event:MouseEvent):void {
gotoAndPlay("KMT1");thanks...the small stuff gets me every time.
-
After closing Firefox to use IE8 or any other program (like InterVideo to watch a DVD), everything is very choppy and slow. I have to go into Taskbar, Processes, and close firefox.exe manually (which is using up all the memory/CPU and should have closed before). Then, and only then, does everything behave normally. What is going on and what am I doing wrong or missing??
== This happened ==
Every time Firefox opened
== about a couple months ago and happens every time I close Firefox.<u>'''Kill Application'''</u>
In Task Manager, does firefox.exe show in the <u>'''Processes'''</u> tab?
See: '''[http://kb.mozillazine.org/Kill_application Kill Application]'''
'''<u>Causes and solutions for Firefox hanging at exit:</u>'''
'''[[Firefox hangs]]'''
'''[http://kb.mozillazine.org/Firefox_hangs#Hang_at_exit Firefox hangs at exit (Mozillazine article)]'''
'''[[Firefox is already running but is not responding]]'''
<u>'''Safe Mode'''</u>
You may need to use '''[[Safe Mode]]''' (click on "Safe Mode" and read) to localize the problem. Firefox SafeMode is a diagnostic mode that disables extensions and some other features of Firefox. If you are using a theme, switch to the DEFAULT theme: Tools > Add-ons > Themes before starting Safe Mode. When entering Safe Mode, do not check any items on the entry window, just click "Continue in Safe Mode". Test to see if the problem you are experiencing is corrected.
See:
'''[[Troubleshooting extensions and themes]]'''
'''[[Troubleshooting plugins]]'''
'''[[Basic Troubleshooting]]'''
If the problem does not occur in Safe-mode then disable all of your extensions and then try to find which is causing it by enabling one at a time until the problem reappears. You have to close and restart Firefox after each change via File > Restart Firefox (on Mac: Firefox > Quit). You can use "Disable all add-ons" on the Safe mode start window.
<u>'''''Other Issues''''': to correct security/stability issues</u>
<u>'''Update Java'''</u>: your ver. 1.6.0.19; current ver. 1.6.0.20 (<u>important security update 04-15-2010</u>)
''(Windows users: Do the manual update; very easy.)''
See: '''[http://support.mozilla.com/en-US/kb/Using+the+Java+plugin+with+Firefox#Updates Updating Java]'''
Do the update with Firefox closed.
Maybe you are looking for
-
Hi, Can any one please provide a link to get trail version of data federator. Thanks in advance. I tried in sap smp but i did not get it over there. Thanks, SK.
-
Upgrading to Oracle 10g for R/3 4.5B
Hello All, One of the businesses we support is running SAP R/3 4.5B on Oracle 9.2.0.6. The kernel details are: SAP R/3 Kernel information: SAP R/3 Kernel 45B Database version OCI_80500_SHARED
-
M30 Screen Freezes, System Crashes
I bought this laptop less than 8 weeks ago & have been battling this problem ever since. Basically the screen will freeze then display this strange screen which is blank with a pattern on it like someone has thrown some liquid on the screen. That's t
-
Hallo. I have a problem with an iPad I borrowed for some time. It was an Apple ID already on the pad, with apps and all. I did not want to erase it as it was merely a loan, so I just let the apps be, and set up the pad with my own Apple ID, installed
-
bonjour j'ai passez mes identifiant apple a un ami qui lui c'est conecté sur deux ordinateur different avec mon compte et avec le temps j'ai formaté 3 fois mon pc en oubliant d'enlever les autorisations maintenant j'essai de synchronisé et de restaur