±Û¾´ÀÌ :ÀåÁø¼º 1999³â 12¿ù 14ÀÏ 11:59:22
In Reply to: read(... 1024)¸¦ Çߴµ¥ ¾î¶»°Ô 65536ÀÌ ³ª¿ÀÁö¿ä? posted by À±°æ±¸ on 1999³â 12¿ù 14ÀÏ 11:16:33:
C·Î ¸¸µç ¼¹ö ¼Ò½ºÀÔ´Ï´Ù.
º¸½Ã°í Ʋ¸° Á¡ÀÌ ÀÖÀ¸½Ã¸é ÁöÀûÇØ Áֽñ⸦...
±×¸®°í ¹Ø¿¡´Â ÀÚ¹Ù·Î ¸¸µç Ŭ¶óÀ̾ðÆ® ¼Ò½ºÀÔ´Ï´Ù.
#include <sys/types.h>
#include <syslog.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERV_TCP_PORT 16161
#define SERV_HOST_ADDR "210.221.251.29"
typedef struct{
short Svc_type;
short filler;
int chatType;
char cont[1024];
}Data;
main (void){
struct sockaddr_in serv_addr, cli_addr;
int s_fd, newsockfd, cnt, client;
char buf[4096];
Data pa;
if((s_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
printf ( "Socket Error\n" ) ;
exit(0);
}
bzero((char *)&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(SERV_TCP_PORT);
if(bind(s_fd,(struct sockaddr *)&serv_addr, sizeof(serv_addr))<0){
printf ( "bind Error\n" ) ; exit(0);
}
listen(s_fd, 5);
while(1){
client = sizeof(cli_addr);
newsockfd = accept(s_fd, (struct sockaddr *)&cli_addr, &client);
printf ( "Connect Socket O.K!!! (Socket = %d)\n" , newsockfd ) ;
if ( newsockfd < 0){
printf("newsockfd Error\n") ;
exit(0);
}
cnt = read(newsockfd, (struct Data*)&pa, 1032);
printf("client data Length : [%d]\n", cnt);
printf("client data : [%ld]\n", pa.Svc_type);
/* printf("client data Length : [%d]\n", cnt);
printf("client data : [%d]\n", pa.Svc_type);
printf("client data : [%c]\n", pa.cont[1]);
printf("client data : [%c]\n", pa.cont[2]);
printf("client data : [%c]\n", pa.cont[3]);
printf("client data : [%c]\n", pa.cont[4]);
printf("client data : [%c]\n", pa.cont[5]);
printf("client data : [%c]\n", pa.cont[6]);*/
close(newsockfd);
}
}
***** ÀÚ¹Ù ¼Ò½º ********
import java.net.*;
import java.io.*;
public class TcpIp{
public static void main(String args[]) {
Socket socket = null;
BufferedReader in = null;
DataOutputStream out = null;
try {
socket = new Socket("210.221.251.29", 16161);
System.out.println("¼ÒÄÏÀÌ Á¢¼ÓµÇ¾ú½À´Ï´Ù : " + socket);
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new DataOutputStream(socket.getOutputStream());
}catch(UnknownHostException e) {
System.out.println("È£½ºÆ®°¡ ÀÌ»óÇÕ´Ï´Ù");
}catch(MalformedURLException e){
System.out.println(e);
}catch(IOException e){
System.out.println("ÀÔÃâ·Â ¿¡·¯ÀÔ´Ï´Ù");
}
try {
Talk_msg msg = new Talk_msg();
msg.writeData(out);
out.flush();
//System.out.println(in.readLine());
out.close();
in.close();
socket.close();
}catch(Exception e){
System.out.println("¿¬°áÀÌ ²÷°å½À´Ï´Ù");
}
}
}
import java.io.*;
import java.net.*;
class Talk_msg{
short Svc_Type;
short filler;
int chatType;
byte[] bytes = new byte[1024];
public Talk_msg(){
Svc_Type = 1;
filler = 0;
chatType = 1;
for(int i=0; i< bytes.length; i++)
bytes[i] = (byte)i;
}
public void writeData(java.io.DataOutputStream stream)throws IOException {
stream.writeInt(chatType);
stream.writeShort(Svc_Type);
stream.writeShort(filler);
stream.writeInt(chatType);
stream.write(bytes);
System.out.println(stream.size());
}
}