<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><DIV>Hello, every one.</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This days I am studying the oldest version of x-window realization, with the purpose of getting a insight of the internal machanism. From the website of x.org.I picked up X.V10R3&nbsp;to get start of my work.</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My pc is now working with i386 arch and Fedora15 linux desktop system, which of that X.V10R3 not supported. So first i must rebuild Xlib.To test with a x-client program, the XOpenDisplay fucntion gave a "connect to x server error.". Things like this:</DIV>
<DIV>&nbsp;</DIV>
<DIV>I derectly test with the x-server on Fedora15.So i needn't wrote a xserver program first.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Using the DISPLAY :0.0</DIV>
<DIV>struct sockaddr_in inaddr;&nbsp;/* INET socket address. */<BR>struct sockaddr *addr;&nbsp;&nbsp;/* address to connect to */<BR>char displaybuf[256];</DIV>
<DIV>int addrlen;&nbsp;&nbsp;&nbsp;/* length of address */<BR>int indian;&nbsp;&nbsp;&nbsp;/* to determine which indian. */<BR>int fd;<BR>struct hostent *host_ptr;<BR>register XReq *req;&nbsp;&nbsp;/* XReq request packet pointer. */<BR>XRep rep;&nbsp;&nbsp;&nbsp;/* XRep reply packet. */<BR>&nbsp;<BR>gethostname(displaybuf, sizeof (displaybuf));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* get local host name ˇ°localehost.localdomainˇ± */<BR>/* Get the statistics on the specified host. */<BR>if ((host_ptr = gethostbyname(displaybuf)) == NULL) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* No such host! */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; errno = EINVAL;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(NULL);<BR>}<BR>&nbsp;&nbsp;/* Check the address type to see if it is an internet host. */<BR>&nbsp;&nbsp;if (host_ptr-&gt;h_addrtype != AF_INET) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Not an Internet host! */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; errno = EPROTOTYPE;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(NULL);<BR>&nbsp;&nbsp;}<BR>&nbsp;<BR>&nbsp;&nbsp;/* Set up the socket data. */<BR>&nbsp;&nbsp;inaddr.sin_family = AF_INET;<BR>&nbsp;&nbsp;inaddr.sin_port = 0;<BR>&nbsp;&nbsp;indian = 1;<BR>&nbsp;&nbsp;if (*(char *) &amp;indian)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inaddr.sin_port += 5800;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inaddr.sin_port += 5900;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;inaddr.sin_port = htons(inaddr.sin_port);&nbsp;<BR>&nbsp;&nbsp;inaddr.sin_addr = *((struct in_addr *)host_ptr-&gt;h_addr);<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;addr = (struct sockaddr *) &amp;inaddr;<BR>&nbsp;&nbsp;addrlen = sizeof (struct sockaddr_in);</DIV>
<DIV>&nbsp;}<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if((fd = socket(addr-&gt;sa_family, SOCK_STREAM, 0)) &lt; 0) <BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Socket call failed! */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* errno set by system call. */<BR>&nbsp;&nbsp;&nbsp; &nbsp;fprintf(stderr, "socket create error! \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; /* Open the connection to the specified X server. */<BR>&nbsp;&nbsp;&nbsp;&nbsp; if(connect(fd, addr, addrlen) == -1) <BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Connection call failed! */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* errno set by system call. */</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "socket connect error.\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>By myself, I have two reason for this:</DIV>
<DIV>1.x-server needs a authentication that my test program&nbsp;didn't add.<BR>&nbsp;2. In the program of mine, the port which i tried to connect is not a correct one.</DIV>
<DIV>&nbsp;</DIV>
<DIV>If someone known these things real, please give me a instructing.</DIV>
<DIV>Thanks very much.</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </DIV></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>