Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!news.ecn.uoknor.edu!fizban.solace.mh.se!vampire.xinit.se!newsfeed.tip.net!news.seinf.abb.se!inquo!hookup!news.nstn.ca!nds.fonorola.net!digdon From: digdon@nds.fonorola.net (Mike Digdon) Newsgroups: comp.unix.bsd.freebsd.misc Subject: Reading from sockets Date: 10 Dec 1995 01:32:00 GMT Organization: Nova Scotia Technology Network Lines: 37 Message-ID: <4addag$m8v@news.nstn.ca> NNTP-Posting-Host: nds.fonorola.net X-Newsreader: TIN [version 1.2 PL2] I'm trying to do some socket reading, and I'm a little distressed by the fact that my read statement is only reading 100 bytes at a time when I explicitly tell it to read 1024. I open the socket, bind and listen to it and wait for connections (via accept). Here's the important part: while (TRUE) { client_length = sizeof(client_addr); if ((clientfd = accept(serverfd, (struct sockaddr *)&client_addr, &client_length)) < 0) error("server: accept error"); do { bzero(buffer, sizeof(buffer)); if ((rval = read(clientfd, buffer, 1024)) < 0) perror("server: can't read from stream"); else if (rval == 0) printf("Ending connection\n"); else printf("%s\n", buffer); } while (rval > 0); close(clientfd); } buffer is defined as char buffer[1024]. When I send in a line of greater than 100 characters, it gets split up onto 2 separate lines, with read reading in only 100 bytes at a time. What's up with this? -- Mike Digdon # Network Support Specialist # iSTAR internet inc Phone: +1 613 780-2200 # E-mail: support@fonorola.net