08-12-2003
That guide is somewhat recommended by many college courses on Unix network programming. That's why I gave you this link.
1. Really? When I read it some time ago I didn't recall I saw this problem. Perhaps a few places may be. I may help clarify if you give me exactly where the omissions go. By the way, they're functions, not methods. When you talked about methods I did take some time wondering what you meant.
2. listen() lasts until you teardown the socket.
The chapter describing the functions do not have full examples. On the next chapter (Client-Server Background) you'll find examples in full that you can try on your system.
3. Assuming you're using TCP (not datagrams). Once a server accept() a connection, from the accept(2) manpage, "it creates a new connected socket with mostly the same properties as s, and allocates a new file descriptor for the socket, which is returned." You can then use recv() on this returned socket (not the one which you called listen() on!) to receive data. You'll need to allocate a buffer, and very likely you should put it in a loop to get the incoming data in chunks. Somewhere in the document it mentioned encapsulating your data by putting a header indicating the length of data. You can use this scheme to decide whether you would like to make a dynamic buffer which fits all the data, for instance so you don't need multiple recvs.
4. Theoretically you can, by using a cross-compiler, then one can compile a Unix C program on Windows or vice versa. I don't have any experience on gcc cross-compilers though, so you may need a search on google for this.
10 More Discussions You Might Find Interesting
1. Programming
Hi !
I had a verry simple question to ask...
In unix when we create pipes.. the unnamed pipes that is...
is there any way to access those pipes outside the code ?
Another thing.. do sockets have an entry in the inode table ?
TIA,
Devyani. (1 Reply)
Discussion started by: devy8
1 Replies
2. Programming
Hai,
How cani declare socket and collect the data in a string varialbe.
Since i am new to this i am asking this.
Can we connect multiple port.
Thank you. (6 Replies)
Discussion started by: arunkumar_mca
6 Replies
3. UNIX for Dummies Questions & Answers
how do i mointor how many sockets are opened from a particular foriegn address? (2 Replies)
Discussion started by: kirpond
2 Replies
4. Solaris
Is there a way to see what sockets are in use? The developers here are getting some defunct processes and they would like to get a socket list.
This is on a Solaris 8 machine.
Thanks! (1 Reply)
Discussion started by: kjbaumann
1 Replies
5. IP Networking
Is it possible to trace the packages and the statuses of client's and/or server's sockets by the UNIX network administrative tools?
Two applications interact via sockets. There is no problem if they stay in the same network segment. If their hosts connected through the firewall then they aren't... (4 Replies)
Discussion started by: gogogo
4 Replies
6. Programming
anyone and teach me how to save standard output to a file in a client/server socket. I know how to read them to the screen but i'm not quite sure how to save them to a file.
my read to screen file code:
memset(line, 0x0, LINE_ARRAY_SIZE);
while (recv(connectSocket, line, MAX_MSG, 0) >... (1 Reply)
Discussion started by: crunchyuser
1 Replies
7. Programming
Hi,i now moved into a different section where i need to use sockets.
i am completely nill in sockets.
can some body please provide me what are the requirements for a socket.
to use sockets in c.
thanks (1 Reply)
Discussion started by: MrUser
1 Replies
8. Programming
if i have a server which wants to connect to exactly 5 clients, does that mean i need 5 socket file descriptors and use
listen(socket_fd,1);
for each one
or just do
listen(socket_fd,5)
also whats the second parameter number mean? what happens if i put 0 there?
also if i am connected... (28 Replies)
Discussion started by: omega666
28 Replies
9. Red Hat
hai guys,
I'm doing a project in which one server communicates with several clients. How can i do it when i have different port numbers???:confused: (0 Replies)
Discussion started by: rajeshb6
0 Replies
10. Programming
Hi, i am student, think learning about c++, someone has a example the how establish a conection with sockets :b::b: (1 Reply)
Discussion started by: mmartinez
1 Replies
LINUX(4) BSD Kernel Interfaces Manual LINUX(4)
NAME
linux -- Linux ABI support
SYNOPSIS
To compile support for this ABI into an i386 kernel place the following line in your kernel configuration file:
options COMPAT_LINUX
for an amd64 kernel use:
options COMPAT_LINUX32
Alternatively, to load the ABI as a module at boot time, place the following line in loader.conf(5):
linux_load="YES"
DESCRIPTION
The linux module provides limited Linux ABI (application binary interface) compatibility for userland applications. The module provides the
following significant facilities:
o An image activator for correctly branded elf(5) executable images
o Special signal handling for activated images
o Linux to native system call translation
It is important to note that the Linux ABI support it not provided through an emulator. Rather, a true (albeit limited) ABI implementation
is provided.
The following sysctl(8) tunable variables are available:
compat.linux.osname Linux kernel operating system name.
compat.linux.osrelease Linux kernel operating system release. Changing this to something else is discouraged on non-development systems,
because it may change the way Linux programs work. Recent versions of GNU libc are known to use different syscalls
depending on the value of this sysctl.
compat.linux.oss_version Linux Open Sound System version.
The linux module can be linked into the kernel statically with the COMPAT_LINUX kernel configuration option or loaded as required. The fol-
lowing command will load the module if it is neither linked into the kernel nor already loaded as a module:
if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
kldload linux > /dev/null 2>&1
fi
Note that dynamically linked Linux executables will require a suitable environment in /compat/linux. Specifically, the Linux run-time
linker's hints files should be correctly initialized. For this reason, it is common to execute the following commands to prepare the system
to correctly run Linux executables:
if [ -x /compat/linux/sbin/ldconfig ]; then
/compat/linux/sbin/ldconfig -r /compat/linux
fi
For information on loading the linux kernel loadable module automatically on system startup, see rc.conf(5). This information applies
regardless of whether the linux module is statically linked into the kernel or loaded as a module.
FILES
/compat/linux minimal Linux run-time environment
/compat/linux/proc limited Linux process file system
/compat/linux/sys limited Linux system file system
SEE ALSO
brandelf(1), elf(5), linprocfs(5), linsysfs(5)
HISTORY
Linux ABI support first appeared in FreeBSD 2.1.
BSD
February 8, 2010 BSD