Я пишу программу клиентского сервера. все работает, кроме этой части. глядя на мой код, я узнал, что сервер не получает идентификатор пользователя, отправленный клиентом. проблема заключается либо в outToServer.writeInt(uid); or in uid = din.readInt();
.WriteInt не отправляет целое число
спасибо.
Вот код для части сервера:
if("Create Event".equals(command)){
String eventnametxt = datain.readLine();
System.out.println(eventnametxt);
String location = datain.readLine();
System.out.println(location);
String description = datain.readLine();
System.out.println(description);
String startdate = datain.readLine();
System.out.println(startdate);
DataInputStream din = new DataInputStream(socket.getInputStream());
String enddate = datain.readLine();
System.out.print(enddate);
uid = din.readInt();
System.out.print(uid);
//get the fullname of the user creating the event
condition = "userid = "+uid;
String Creator = jdbc.SelectLogIn("fullName", "users", condition);
//insert the record in the database
String Fields = "EventName,Location,Description,Creator,userid,StartDate,EndDate";
String Values = "'" + eventnametxt + "','" + location + "','" + description + "','" + Creator + "'," + uid + ",'" + startdate + "','" + enddate + "'";
jdbc.Insert("events", Fields, Values);
dataout.writeBytes("Event Successfully Created!!\n");
}
и это код со стороны клиента :
command = "Create Event";
try{
clientSocket = new Socket("localhost", 6555);
inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
//inform the server that user is creating an event
outToServer.writeBytes(command + '\n');
//send the information for the event
outToServer.writeBytes(eventnametxt.getText() + '\n');
outToServer.writeBytes(locationtxt.getText() + '\n');
outToServer.writeBytes(Eventdescription.getText() + '\n');
outToServer.writeBytes(startdt.getDate().toString() + '\n');
outToServer.writeBytes(enddt.getDate().toString()+'\n');
// send the userid corresponding to the person logged in and creating the event
outToServer.writeInt(uid);
System.out.print(" "+uid+'\n');
response = inFromServer.readLine();
System.out.print("server response: "+response);
if("Event Successfully Created!!".equals(response)){
JOptionPane.showMessageDialog(null, response, "InfoBox: " + "Response", JOptionPane.INFORMATION_MESSAGE);
outToServer.writeBytes("Event Added"+'\n');
this.dispose();
}
}catch (IOException ex){
Logger.getLogger(EventsFrame.class.getName()).log(Level.SEVERE, null, ex);
}
я читаю строки, используя буферный читатель и целые числа, используя DataInputStream – smn14
Вы должны читать их точно по таким же образом, как вы пишете их , Вы написали все (также укусы) с DataOutputStream, вы должны прочитать все (также укусы) с DataInputStream (сохраняя порядок), –