当前位置: 技术问答>linux和unix
关于unix简单socket的问题
来源: 互联网 发布时间:2016-02-20
本文导语: 刚接触unix下的c语言socket,请高手指导一下。 我想写一个socket程序,功能就是两个人私聊。类似qq那种形式。 所以我做了一个服务端,一个客户端。 最主要的是我想让两边都可以收发消息:对方如果发消息就能立即...
刚接触unix下的c语言socket,请高手指导一下。
我想写一个socket程序,功能就是两个人私聊。类似qq那种形式。
所以我做了一个服务端,一个客户端。
最主要的是我想让两边都可以收发消息:对方如果发消息就能立即看到,同时自己这边也能随时发消息,两边收发消息功能一样。
这个不知道怎么做,是不是要用到fork函数?
fork函数太可怕了,我已经搞出好几次死循环了。
我自己写了一个,但是不行,写的乱七八糟,贴出来只是希望能更好的说明我的意图。
谢谢各位高手指导,如果能在我的基础上改出来更好。
希望给出代码。
服务器端:
#include "stdio.h"
#include "stdlib.h"
#include "errno.h"
#include "string.h"
#include "sys/types.h"
#include "netinet/in.h"
#include "sys/socket.h"
#include "sys/wait.h"
#define PORT 1985
int main()
{
int nSock, nLength;
struct sockaddr_in serverStru;
struct sockaddr tcpaddrStru;
int msgsock, msgsize;
char cBuf[1024];
int nRval, len;
char tmp[10];
/* 建立套接字 */
nSock = socket(AF_INET, SOCK_STREAM, 0);
if (nSock
我想写一个socket程序,功能就是两个人私聊。类似qq那种形式。
所以我做了一个服务端,一个客户端。
最主要的是我想让两边都可以收发消息:对方如果发消息就能立即看到,同时自己这边也能随时发消息,两边收发消息功能一样。
这个不知道怎么做,是不是要用到fork函数?
fork函数太可怕了,我已经搞出好几次死循环了。
我自己写了一个,但是不行,写的乱七八糟,贴出来只是希望能更好的说明我的意图。
谢谢各位高手指导,如果能在我的基础上改出来更好。
希望给出代码。
服务器端:
#include "stdio.h"
#include "stdlib.h"
#include "errno.h"
#include "string.h"
#include "sys/types.h"
#include "netinet/in.h"
#include "sys/socket.h"
#include "sys/wait.h"
#define PORT 1985
int main()
{
int nSock, nLength;
struct sockaddr_in serverStru;
struct sockaddr tcpaddrStru;
int msgsock, msgsize;
char cBuf[1024];
int nRval, len;
char tmp[10];
/* 建立套接字 */
nSock = socket(AF_INET, SOCK_STREAM, 0);
if (nSock