本文整理汇总了C++中socket_write函数的典型用法代码示例。如果您正苦于以下问题:C++ socket_write函数的具体用法?C++ socket_write怎么用?C++ socket_write使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了socket_write函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: register_vehicle
void register_vehicle(int fd, struct vehicle_list *vehicles)
{
int16_t port;
char *addr;
uint32_t data_size, id;
if(socket_read(fd, &port, sizeof(int16_t)) != sizeof(int16_t))
return;
port = ntohs(port);
if(socket_read(fd, &data_size, sizeof(uint32_t)) != sizeof(uint32_t))
return;
data_size = ntohl(data_size);
addr = (char*)malloc(data_size + 1);
if(addr == NULL)
error_exit("Memory allocation:");
if(socket_read(fd, addr, data_size) != data_size)
{
free(addr);
return;
}
addr[data_size] = 0;
id = htonl(l_add_vehicle(vehicles, port, addr));
socket_write(fd, "k", 1);
socket_write(fd, &id, sizeof(uint32_t));
printf("Vehicle %d registered. Count = %d\n", ntohl(id), vehicles->num_vehicles);
free(addr);
}
示例2: socket_main
int socket_main(int hsocket)
{
struct sockaddr_in sock;
int asocket; /* Active socket */
socklen_t sock_len;
char buffer[200];
int got;
sock_len = sizeof(struct sockaddr_in);
asocket = accept( hsocket, (struct sockaddr *)&sock, &sock_len );
if (asocket == -1) {
return -1;
}
socket_write( asocket, "Hi there\n", 9 );
while (1) {
while (socket_poll(asocket)==0) {}
if ((got=socket_read(asocket, buffer, 200))>0) {
socket_write( asocket, buffer, got );
}
else
break;
}
close(asocket);
return 0;
}
示例3: get_history
void get_history(int fd, struct vehicle_list *vehicles)
{
int32_t id, count, x, y;
struct single_vehicle *v;
struct position *p;
if(socket_read(fd, &id, sizeof(uint32_t)) != sizeof(uint32_t)) return;
id = ntohl(id);
count = begin_getting_history(vehicles, id, &v);
count = htonl(count);
if(socket_write(fd, &count, sizeof(uint32_t)) == sizeof(uint32_t) && v != NULL)
{
p = get_positions(v);
while(p != NULL)
{
x = htonl(p->x);
y = htonl(p->y);
if(socket_write(fd, &x, sizeof(int32_t)) != sizeof(int32_t)) break;
if(socket_write(fd, &y, sizeof(int32_t)) != sizeof(int32_t)) break;
p = get_next_position(p);
}
}
end_getting_history(vehicles, v);
}
示例4: send_continuation
/*
* Sends a response to a command continuation request.
*/
int
send_continuation(session *ssn, const char *data, size_t len)
{
if (ssn->socket == -1)
return -1;
if (socket_write(ssn, data, len) == -1 ||
socket_write(ssn, "\r\n", strlen("\r\n")) == -1)
return -1;
if (opts.debug) {
unsigned int i;
debug("sending continuation data (%d):\n\n", ssn->socket);
for (i = 0; i < len; i++)
debugc(data[i]);
debug("\r\n\n");
}
return 0;
}
示例5: http_put_buf
/**
* HTTP PUT buffer contents to a remote URL
* @param url URL to PUT the contents to
* @param buf Buffer whose contents to send
* @param count Size of buffer (number of bytes to send)
* @return HTTP status code, 200 for OK. See the HTTP RFC for details.
*/
int http_put_buf(const char *url, const void *buf, size_t count) {
char *host = url_get_field(url, URL_HOST);
char *port = url_get_field(url, URL_PORT);
char *path = url_get_field(url, URL_PATH);
int response_code = -1;
if (host && port && path) {
String *buffer = string_new("");
string_append_c(buffer, "PUT ");
string_append_c(buffer, path);
string_append_c(buffer, " HTTP/1.1\r\n");
string_append_c(buffer, "Host: ");
string_append_c(buffer, host);
string_append_c(buffer, "\r\n");
string_append_c(buffer, "Content-type: text/plain\r\n");
if (count > 0) {
char length_str[16];
snprintf(length_str, sizeof length_str, "%zu", count);
string_append_c(buffer, "Content-length: ");
string_append_c(buffer, length_str);
string_append_c(buffer, "\r\n");
}
string_append_c(buffer, "Connection: close\r\n");
string_append_c(buffer, "Iam: anilakar\r\n");
string_append_c(buffer, "\r\n");
int http_socket = socket_tcp_connect(host, port);
if (http_socket >= 0) {
if (-1 == socket_write(http_socket, buffer->c_str, buffer->size) ||
-1 == socket_write(http_socket, buf, count)) {
VERBOSE("Could not write to HTTP server.");
} else {
char response[512]; // Need only the first line
int r = socket_read(http_socket, response, sizeof response - 1);
response[r] = '\0';
sscanf(response, "HTTP/1.1 %d", &response_code);
}
}
socket_close(&http_socket);
string_delete(buffer);
}
else {
VERBOSE("Malformed URL: %s", url);
}
free(path);
free(port);
free(host);
VERBOSE("HTTP Response: %d", response_code);
return response_code;
}
示例6: main
// main
//-----------------------------------------------------------------------------------
int
main (int argc, char *argv[])
{
int s, size;
pthread_t thread;
char buf[256];
if (argc == 1)
{
printf ("usage: client <server IP address>\n");
exit (1);
}
s = socket_connect (argv[1], 1024);
pthread_mutex_init (&g_mutex, NULL);
pthread_create (&thread, NULL, thread_recv, (void *) &s);
// メインループ
//---------------------------------------------------
while (g_main_loop)
{
fgets (buf, 256, stdin);
size = strlen (buf);
fprintf (stderr, "sending[%d] %s", size, buf);
socket_write (s, &size, sizeof (int));
socket_write (s, buf, size);
}
pthread_join (thread, NULL);
exit (0);
}
示例7: write_string
static void write_string(int fd, char const * message)
{
size_t const length = (message) ? strlen(message) : 0;
socket_write(fd, (void const *)&length, sizeof(size_t));
if (length > 0)
{
socket_write(fd, (void const *)message, length);
}
}
示例8: NPServerSendROMInfoToClient
static bool8 NPServerSendROMInfoToClient (int c)
{
if (!npplayer[c].online)
return (false);
NPNotification("Server: Sending ROM information to client %d...", c);
if (NPServerSendMesToClient(c, kNPServerROMInfoWillSend) == false)
{
NPError("Server: Failed to send messsage to client.", 1301);
return (false);
}
if (NPServerGetMesFromClient(c) != kNPClientROMInfoWaiting)
{
NPError("Server: Failed to receive messsage from client.", 1302);
return (false);
}
uint8 mes[16];
uint32 l;
char drive[_MAX_DRIVE + 1], dir[_MAX_DIR + 1], fname[_MAX_FNAME + 1], ext[_MAX_EXT + 1];
_splitpath(Memory.ROMFilename, drive, dir, fname, ext);
l = strlen(fname);
WRITE_LONG(mes + 0, Memory.ROMCRC32);
WRITE_LONG(mes + 4, deviceSetting);
WRITE_BYTE(mes + 8, 0); // reserved
WRITE_BYTE(mes + 9, 0); // reserved
WRITE_BYTE(mes + 10, 0); // reserved
WRITE_BYTE(mes + 11, 0); // reserved
WRITE_LONG(mes + 12, l);
if (socket_write(npplayer[c].socket, mes, 16) != 16)
{
NPError("Server: Failed to send ROM information to client.", 1303);
return (false);
}
if (socket_write(npplayer[c].socket, (uint8 *) fname, l) != (int) l)
{
NPError("Server: Failed to send ROM name to client.", 1304);
return (false);
}
NPNotification("Server: Sent ROM information to client %d.", c);
return (true);
// next: kNPClientROMOpened
}
示例9: NPClientReplyPhaseSpanTest
static bool8 NPClientReplyPhaseSpanTest (void)
{
uint8 mes[21];
int l = npclient.numplayers * 4 + 1;
NPNotification("Client: Replying sending / receiving pad states test...", -1);
for (int n = 0; n < 5; n++)
{
if (socket_read(npclient.socket, mes, l) != l)
return (false);
if (socket_write(npclient.socket, mes, 5) != 5)
return (false);
}
NPNotification("Client: Replied sending / receiving pad states test.", -1);
NPNotification("Client: Receiving phase span value from server...", -1);
if (socket_read(npclient.socket, mes, 4) != 4)
return (false);
npclient.phasespan = READ_LONG(mes + 0);
NPNotification(" phase span: %d (frames)", npclient.phasespan);
NPNotification("Client: Received phase span value from server.", -1);
return (true);
}
示例10: handle_sys
/* Handle a RST 38 (system call) */
int handle_sys(int scall, int parameter)
{
char buffer[2];
switch (scall) {
case 0: {
/* Read in from telnet */
if (flags&DSOCKETS) {
return socket_get(tsocket);
}
return 0;
break;
}
case 1: {
/* Write to telnet */
if (flags&DSOCKETS) {
buffer[0]=(parameter&0x0ff);
return socket_write( tsocket, buffer, 1);
}
return -1;
}
case 2: {
/* Return !0 if data is available */
if (flags&DSOCKETS) {
return socket_poll( tsocket );
}
return -1;
}
}
return 0;
}
示例11: run_networking_test
static void run_networking_test(bool server)
{
if (!server) {
connection_t *conn = connection_create(&on_connect);
if (!conn)
return;
printf("connecting to localhost on port 1337\n");
socket_connect(conn, "127.0.0.1", "1337");
char buffer[1024];
while (fgets(buffer, sizeof buffer, stdin))
socket_write(conn, buffer);
} else {
socket_t *sock = socket_create(on_accept);
if (!sock)
return;
printf("Server will bind to port 1337.\n");
socket_listen(sock, NULL, 1337, 10);
while (1) {
sleep(5);
printf("%d connections ATM\n", sock->num_connections);
}
}
}
示例12: on_connect
static void on_connect(connection_t *s)
{
s->on_read = on_read;
s->on_disconnect = on_disconnect;
socket_write(s, "hi %s\n", s->ip);
}
示例13: send_svr_disconnect
void send_svr_disconnect(int sock, char *user_name)
{
/*
* Disconnect message to svr:
* +2+22+592+{user_len}{user}
*/
int rc = PBSE_NONE;
int len = 0, user_len = 0, user_ll = 0, resp_msg_len = 0;
char tmp_buf[8];
char *resp_msg = NULL;
user_len = strlen(user_name);
sprintf(tmp_buf, "%d", user_len);
user_ll = strlen(tmp_buf);
len += 8;
len += user_ll;
len += 1;
len += user_len;
len += LOGIN_NAME_MAX + 1;
resp_msg = (char *)calloc(1, len);
sprintf(resp_msg, "+2+22+59%d+%d%s", user_ll, user_len, user_name);
resp_msg_len = strlen(resp_msg);
if ((rc = socket_write(sock, resp_msg, resp_msg_len)) != resp_msg_len)
{
if (debug_mode == TRUE)
fprintf(stderr, "Can not send close message to pbs_server!! (socket #%d)\n", sock);
}
free(resp_msg);
}
示例14: socket_write_all
int
socket_write_all(int sock, const void *buff, size_t len)
{
size_t nleft;
ssize_t nwritten;
const char *ptr;
ptr = buff;
nleft = len;
while (nleft > 0)
{
if ( (nwritten = socket_write(sock, ptr, nleft)) <= 0)
{
if (nwritten < 0 && errno == EINTR)
nwritten = 0; /* and call write() again */
else
return (-1); /* error */
}
nleft -= nwritten;
ptr += nwritten;
}
return len;
}
示例15: send_response
/**
* Send the response to the client. If the response has already been
* commited, this function does nothing.
*/
static void send_response(HttpResponse res) {
Socket_T S= res->S;
if(!res->is_committed) {
char date[STRLEN];
char server[STRLEN];
char *headers= get_headers(res);
int length = StringBuffer_length(res->outputbuffer);
res->is_committed= TRUE;
get_date(date, STRLEN);
get_server(server, STRLEN);
socket_print(S, "%s %d %s\r\n", res->protocol, res->status,
res->status_msg);
socket_print(S, "Date: %s\r\n", date);
socket_print(S, "Server: %s\r\n", server);
socket_print(S, "Content-Length: %d\r\n", length);
socket_print(S, "Connection: close\r\n");
if(headers)
socket_print(S, "%s", headers);
socket_print(S, "\r\n");
if(length)
socket_write(S, (unsigned char *)StringBuffer_toString(res->outputbuffer), length);
FREE(headers);
}
}