我不明白我在gcc编译器中发出的警告。警告是:warning: pointer targets in passing argument 6 of ‘recvfrom’ differ in signedness我不知道,哪里出了问题,我没有signed and unsigned使用价值。
问题在线:
recvfrom(server_socket, inputbuffer, maxLenght, 0, (struct sockaddr*) remote_addr, &server_addr_len);
Run Code Online (Sandbox Code Playgroud)
我尝试了这个:
recvfrom(server_socket, inputbuffer, maxLenght, 0, (unsigned int) remote_addr, &server_addr_len);
Run Code Online (Sandbox Code Playgroud)
但这并没有帮助我。感谢您的建议和解释。
我正在使用ObjectOutputStream将我的对象保存到.dat文件.我的问题是,如果我改变我的对象的源代码(例如我添加一个方法(getter))输入流无法加载数据并告诉我一个错误Serializable:有可能解决这个问题吗?.dat如果我更改源代码,我必须每次都生成新文件.
使用此方法:( 不要看对象类型 - 返回值)保存
public void saveToFile(HeaderOfMapTeachStructure hm, String nameOfFile) {
try (ObjectOutputStream os = new ObjectOutputStream(
new FileOutputStream(nameOfFile + "." + this.TYPE_OF_FILE))) {
os.writeObject(hm);
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
Run Code Online (Sandbox Code Playgroud)
加载
public MapStandard loadFromFileMS(String nameOfFile) {
MapStandard hm = null;
InputStream inputStreaminputStream
= getClass().getClassLoader().
getResourceAsStream("data/" + nameOfFile + ".data");
try {
try (ObjectInputStream is = new ObjectInputStream(inputStreaminputStream)) {
hm = (MapStandard) is.readObject();
}
} …Run Code Online (Sandbox Code Playgroud)