나는 c와 클라이언트가 java에 있지만 작동하지 않는다.
1. 실행 서버, 클라이언트
2. 실행 클라이언트에 대한 서버 대기는 - 클라이언트는 서버가 전나무 문자를 얻고 그것을 증가 및 클라이언트에 보내 // 나는이 기대하지만
서버가 일부 잘못된 문자를 가져옵니다
3. 문자열을 전송
문자를 얻고 //이 기대 화면에 쓸 수 있지만 클라이언트는이
예외와 함께 실패 4.client :
자바 클라이언트에서 TCP 서버가
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
at clientTCP.main(clientTCP.java:19)
클라이언트가 끝나야 5)와 서버 계속 실행 //하지만 클라이언트는 이전 후 추락 예외
누가 문제가 될 수 있는지 아는 사람 있습니까? 서버, 클라이언트는 TCP 프로토콜을 사용합니다.
서버 : 자바
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>
#include <netinet/in.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
int main()
{
int server_sockfd, client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = inet_addr("127.0.0.1");
server_address.sin_port = htons(10000);
server_len = sizeof(server_address);
if(bind(server_sockfd, (struct sockaddr *)&server_address, server_len) != 0)
{
perror("oops: server-tcp-single");
exit(1);
}
listen(server_sockfd, 5);
signal(SIGCHLD, SIG_IGN);
while(1)
{
char ch;
printf("server wait...\n");
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
printf("Client connected \n");
if(fork() == 0)
{
read(client_sockfd, &ch, 1);
printf("Client send = %c\n", ch);
ch++;
sleep(5);
printf("Server send = %c\n", ch);
write(client_sockfd, &ch, 1);
close(client_sockfd);
exit (0);
}
else
close(client_sockfd);
}
}
클라이언트 :
는
import java.io.*;
import java.net.*;
class clientTCP
{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
Socket socket = new Socket("127.0.0.1", 10000);
InetAddress adresa = socket.getInetAddress(); //address
System.out.print("Connecting on : "+adresa.getHostAddress()+" with hostname : "+adresa.getHostName()+"\n");
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject("HalloXXXX");
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String message = (String) ois.readObject();
System.out.println("Message Received: " + message);
ois.close();
oos.close();
socket.close();
}
}